Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Magento 1.1.4 - API / SOAP
 
Klein Michael
Jr. Member
 
Total Posts:  5
Joined:  2008-09-09
 

Hi,

ich habe Magento 1.1.4 heruntergeladen (Downloader Version) und installiert. Soweit so gut. Anschliessend die PHP Scripte ausprobiert um mich mal mit dem ganzen zu spielen, Erfahrung zu sammeln um einen import / export von Daten zwischen Magento und der Warenwirtschaft realisieren zu können.

Da es aber nicht funktionierte habe ich Google bemüht, und auch versucht hilfreiches hier im Forum zu ergattern. Ich habe es mit dem Duplicate Header Teil versucht (http://www.exanto.de/duplicate-headers-bei-magento-113.html), dann hab ich noch eine Anleitung gefunden in welcher beschrieben wurde, daß es über Admin Panel bei System / Web Services eine Role und User anzulegen und einzustellen gilt, ja usw.

In der Regel bin ich da doch hartnäckig und versuche es so lange, bis es funktioniert - frei nach dem Motto “weil es ja funktionieren muss”. Hierbei aber scheitere ich, sei es weil mir irgendein Teilchen fehlt oder aber am Verständnis. Vielleicht bin ich auch einfach nur zu blöd wink

Das Script sagt folgendes:

WarningSoapClient::SoapClient(http://www.domain.at/shop/magento/index.php/api/soap/?wsdl): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Service Error
 
in /root/magento_artikelabfrage.php on line 3

Warning
SoapClient::SoapClient(): I/O warning failed to load external entity "http://www.domain.at/shop/magento/index.php/api/soap/?wsdl" in /root/magento_artikelabfrage.php on line 3

Fatal error
Uncaught SoapFault exception[WSDL] SOAP-ERRORParsing WSDLCouldn't load from 'http://www.domain.at/shop/magento/index.php/api/soap/?wsdl' in /root/magento_artikelabfrage.php:3
Stack trace:
#0 /root/magento_artikelabfrage.php(3): SoapClient->SoapClient('http://www2.bau...')
#1 {main}
  
thrown in /root/magento_artikelabfrage.php on line 3

Firefox:

<SOAP-ENV:Envelope>
−
<SOAP-ENV:Body>
−
<SOAP-ENV:Fault>
<faultcode>WSDL</faultcode>
−
<faultstring>
SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://www.domain.at/shop/magento/api/soap/index/wsdl/1/’
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Internet Explorer sagt gleich mal “Seite kann nicht angezeigt werden” und bei weitere Information eben denn 500er Fehler.

Was mich auch etwas verwirrt (insbesondere als ahnungsloser), es gibt immer wieder in diversen Niederschriften Unterschiede bezüglich der URL. Im Wiki wird zb. “http://magentohost/api/soap/?wsdl” verwendet, an anderer Stelle “/index.php/api/soap/?wsdl” .... insbesondere weil es kein Verzeichnis “api” gibt.

Oje, so viel geschrieben, ich hoffe man nimmt es mir nicht übel. Aber vielleicht hat es jemand bis zum Ende geschafft und kann mir nen Schubs in die richtige Richtung geben.

Auf jeden Fall möchte ich mich schon im voraus für allfällige Hilfe, Tipps usw bedanken.

ReadYa

Mike

 
Magento Community Magento Community
Magento Community
Magento Community
 
Klein Michael
Jr. Member
 
Total Posts:  5
Joined:  2008-09-09
 

Hi,

so, ein wenig rumgespielt - nicht wirklich viel erreicht. Aber möglicherweise ist ja auch suhosin Schuld daran. Also, auf einem anderen Server installiert. Dort habe ich jetzt wieder ein anderes verhalten:

Wenn ich auf System / Web Services / Roles klicke, das funzt noch. Wenn ich auf den Button “Add new Role” klicke, kommt eine Fehlermeldungsseite:

There has been an error processing your request.

Warning: SimpleXMLElement::addAttribute() [function.SimpleXMLElement-addAttribute]: Attribute name and value are required in /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php on line 367
Trace:
#0 [internal function]: mageCoreErrorHandler(2, ‘SimpleXMLElemen...’, ‘/var/www/virtua...’, 367, Array)
#1 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(367): SimpleXMLElement->addAttribute(’descr’, ‘’)
#2 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(387): Varien_Simplexml_Element->extendChild(Object(Mage_Core_Model_Config_Element), true)
#3 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(387): Varien_Simplexml_Element->extendChild(Object(Mage_Core_Model_Config_Element), true)
#4 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(387): Varien_Simplexml_Element->extendChild(Object(Mage_Core_Model_Config_Element), true)
#5 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(387): Varien_Simplexml_Element->extendChild(Object(Mage_Core_Model_Config_Element), true)
#6 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php(326): Varien_Simplexml_Element->extendChild(Object(Mage_Core_Model_Config_Element), true)
#7 /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Config.php(586): Varien_Simplexml_Element->extend(Object(Mage_Core_Model_Config_Element), true)
#8 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Api/Model/Config.php(72): Varien_Simplexml_Config->extend(Object(Mage_Core_Model_Config_Base), true)
#9 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Api/Model/Config.php(43): Mage_Api_Model_Config->_construct()
#10 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Core/Model/Config.php(715): Mage_Api_Model_Config->__construct(Array)
#11 /var/www/virtual/domain.de/magento/htdocs/app/Mage.php(287): Mage_Core_Model_Config->getModelInstance(’api/config’, Array)
#12 /var/www/virtual/domain.de/magento/htdocs/app/Mage.php(301): Mage::getModel(’api/config’, Array)
#13 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Api/Model/Roles.php(64): Mage::getSingleton(’api/config’)
#14 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Api/Model/Roles.php(46): Mage_Api_Model_Roles->_buildResourcesArray()
#15 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Adminhtml/controllers/Api/RoleController.php(78): Mage_Api_Model_Roles->getResourcesList()
#16 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Core/Controller/Varien/Action.php(343): Mage_Adminhtml_Api_RoleController->editRoleAction()
#17 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Core/Controller/Varien/Router/Admin.php(137): Mage_Core_Controller_Varien_Action->dispatch(’editrole’)
#18 /var/www/virtual/domain.de/magento/htdocs/app/code/core/Mage/Core/Controller/Varien/Front.php(168): Mage_Core_Controller_Varien_Router_Admin->match(Object(Mage_Core_Controller_Request_Http))
#19 /var/www/virtual/domain.de/magento/htdocs/app/Mage.php(420): Mage_Core_Controller_Varien_Front->dispatch()
#20 /var/www/virtual/domain.de/magento/htdocs/index.php(46): Mage::run()
#21 {main}

Also irgendwie komm ich nicht wirklich weiter *seufz* Offensichtlich bin ich für irgendwas entweder zu blöd, oder irgendwas haut mir bei beiden Servern einen Knüppel zwischen die Füsse :(

ReadYa

Mike

 
Magento Community Magento Community
Magento Community
Magento Community
 
stefan_herxe
Member
 
Total Posts:  49
Joined:  2008-08-20
 

Hallo Michael, hallo Ingo

gleiche Meldung auch bei mir und scheinbar auch bei noch mehr Leuten. Hier ist ein hack der auch bei mir funktioniert..
http://www.magentocommerce.com/boards/viewthread/18426/

Der Eingriff ist zwar nur winzig, dennoch schlage ich vor Du kopierst Dir die Originaldatei nach /app/local/Varien/Simplexml/Element.php, damit das Ding nicht beim nächsten Update überschrieben wird.

Warum die Fehlermeldung allerdings nur bei manchen provoziert wird ist die Frage? Wir habe doch alle ein “error_reporting(E_ALL | E_STRICT);” in der Mage.php, oder etwas nicht? Kann es sein, das die Einstellungen zum error_reporting in der php.ini sich doch auswirken? Bei mir ist in der ini “E_ALL & ~E_NOTICE” notiert… sollte eigentlich normal sein…

ciao, Stefan

PS: Ich vermute Micheal hat leider übersehen oder vergessen die E-Mailbenachrichtigung anzuhaken, sonst hätte er wohl schon reagiert nach der Zeit…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Klein Michael
Jr. Member
 
Total Posts:  5
Joined:  2008-09-09
 

Hi,

stefan_herxe - 25 September 2008 01:16 PM

PS: Ich vermute Micheal hat leider übersehen oder vergessen die E-Mailbenachrichtigung anzuhaken, sonst hätte er wohl schon reagiert nach der Zeit…

Sorry, aber ich bin grad in der Firma böse ausgelastet. Nach einigen Versuchen und durchgehend Fehlschlägen habe ich mir auch ein paar Tage Auszeit von Magento gegönnt. Manchmal sieht man nach zahlreichen Try & Error Versuchen wieder klarer, wenn man das ganze ein wenig Ruhen lässt wink

novalis - 18 September 2008 08:10 PM

Hm, mein Server läuft ebenfalls mit dem Suhosin-Patch (PHP 5.2.6, Debian Version), und ich hatte keine Probleme SOAP zum laufen zu kriegen. PHP’s SOAP Extension installiert? SimpleXML drin? PHP evtl. als CGI am Rennen?

Edit: Den Duplicate-Header-Patch hast du ja schon ausprobiert… was sagt denn das Error-Log bei dem 500’er?

Bei mir läuft ebenso ein Debian, in meimen Fall die Lenny. Die Details die Du angeführt hast, muss ich mal im Detail nachsehen.

stefan_herxe - 25 September 2008 01:16 PM

Hallo Michael, hallo Ingo

gleiche Meldung auch bei mir und scheinbar auch bei noch mehr Leuten. Hier ist ein hack der auch bei mir funktioniert..
http://www.magentocommerce.com/boards/viewthread/18426/

Der Eingriff ist zwar nur winzig, dennoch schlage ich vor Du kopierst Dir die Originaldatei nach /app/local/Varien/Simplexml/Element.php, damit das Ding nicht beim nächsten Update überschrieben wird.

Warum die Fehlermeldung allerdings nur bei manchen provoziert wird ist die Frage? Wir habe doch alle ein “error_reporting(E_ALL | E_STRICT);” in der Mage.php, oder etwas nicht? Kann es sein, das die Einstellungen zum error_reporting in der php.ini sich doch auswirken? Bei mir ist in der ini “E_ALL & ~E_NOTICE” notiert… sollte eigentlich normal sein…

ciao, Stefan

Danke für den Tipp, das werde ich dann mal ausprobieren.

ReadYa

Mike

 
Magento Community Magento Community
Magento Community
Magento Community
 
Braeu
Jr. Member
 
Total Posts:  16
Joined:  2008-03-16
 

Hi,

also ich habe genau das gleiche Problem, das die WEB-API nicht läuft und mir ist wie Michael auch aufgefallen, das sich das WSDL-File in unterschiedlichen Beispielen an unterschiedlichen Stellen befinden soll.
Müsste ich nicht wenigstens irgendwo im Magentoverzeichnis einen Ordner api finden???

Die Vorschlag hier mit dem Error_reporting habe ich eingebaut.

Meine Umgebung: XAMPP für Mac OS X 0.7.0

Viele Grüße Braeu

PS:
Habe es hinbekommen, war ein Tippfehler in der URL…
geht aber nur so:

$proxy = new SoapClient('http://localhost/magento/index.php/api/soap/?wsdl');
so nicht
$proxy = new SoapClient('http://localhost/magento/soap/?wsdl');
Damit hat sich auch die Frage mit dem Pfad erledigt.
 
Magento Community Magento Community
Magento Community
Magento Community
 
Klein Michael
Jr. Member
 
Total Posts:  5
Joined:  2008-09-09
 

Hi,

Braeu - 26 September 2008 12:26 AM


$proxy = new SoapClient('http://localhost/magento/index.php/api/soap/?wsdl');
so nicht
$proxy = new SoapClient('http://localhost/magento/soap/?wsdl');
Damit hat sich auch die Frage mit dem Pfad erledigt.

Also das erste Beispiel kann ich bestätigen, das funzt eigentlich von Anfang an ... wenn auch mit Fehlerausgabe:

Firefox:

<SOAP-ENV:Envelope>
−
<SOAP-ENV:Body>
−
<SOAP-ENV:Fault>
<faultcode>WSDL</faultcode>
−
<faultstring>
SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://www2.domain.at/shop/magento/api/soap/index/wsdl/1/’
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Internet Explorer bringt “Die Website kann diese Seite nicht anzeigen” und bei Weitere Informationen:

Dieser Fehler (HTTP 500 Interner Serverfehler) bedeutet, dass die Website, die Sie besuchen möchten, ein Serverproblem hat, durch das die Anzeige der Webseite verhindert wird.

Der Aufruf der URL aus der “XML” Fehlermeldung (http://www2.domain.at/shop/magento/api/soap/index/wsdl/1/) bringt einen 404er zu Tage.

stefan_herxe - 25 September 2008 01:16 PM

Hallo Michael, hallo Ingo

gleiche Meldung auch bei mir und scheinbar auch bei noch mehr Leuten. Hier ist ein hack der auch bei mir funktioniert..
http://www.magentocommerce.com/boards/viewthread/18426/

War bedauerlicherweise auch nicht von Erfolg gekrönt. Hast du irgendwas “spezielles” mittels apt-get installiert ?

novalis - 18 September 2008 08:10 PM

Hm, mein Server läuft ebenfalls mit dem Suhosin-Patch (PHP 5.2.6, Debian Version), und ich hatte keine Probleme SOAP zum laufen zu kriegen. PHP’s SOAP Extension installiert? SimpleXML drin? PHP evtl. als CGI am Rennen?

PHP’s SOAP Extension, SimpleXML ... sollten eigentlich
PHP evtl. als CGI am Rennen? ... ääähm, ja gute Frage.

novalis - 18 September 2008 08:10 PM

Edit: Den Duplicate-Header-Patch hast du ja schon ausprobiert… was sagt denn das Error-Log bei dem 500’er?

[Fri Sep 26 12:50:36 2008] [error] [client 192.168.0.2] File does not exist: /var/www/www2/shop/magento/api

 
Magento Community Magento Community
Magento Community
Magento Community
 
Braeu
Jr. Member
 
Total Posts:  16
Joined:  2008-03-16
 

[Fri Sep 26 12:50:36 2008] [error] [client 192.168.0.2] File does not exist: /var/www/www2/shop/magento/api

und du hast als URL in deinem PHP-Script auch http://www2.baustoffwagner.at/shop/magento/index.php/api/soap/?wsdl angegeben?

Da ich die Endung .at lese, dein ERP-System ist nicht zufällig Winline?

Gruß Braeu

 
Magento Community Magento Community
Magento Community
Magento Community
 
Klein Michael
Jr. Member
 
Total Posts:  5
Joined:  2008-09-09
 

Hi,

Braeu - 26 September 2008 02:32 AM

[Fri Sep 26 12:50:36 2008] [error] [client 192.168.0.2] File does not exist: /var/www/www2/shop/magento/api

und du hast als URL in deinem PHP-Script auch http://www2.baustoffwagner.at/shop/magento/index.php/api/soap/?wsdl angegeben?

Yep.

Braeu - 26 September 2008 02:32 AM

Da ich die Endung .at lese, dein ERP-System ist nicht zufällig Winline?

Gruß Braeu

Huch, einmal nicht aufgepasst und die Domain vergessen zu verschleiern *gg* Aber zur Frage: nein, wir haben eine Branchenlösung für den Baustoffhandel unter HP-UX im Einsatz.

ReadYa

Mike

 
Magento Community Magento Community
Magento Community
Magento Community
 
stefan_herxe
Member
 
Total Posts:  49
Joined:  2008-08-20
 

Hallo Leute

das sich das WSDL-File in unterschiedlichen Beispielen an unterschiedlichen Stellen befinden soll.
Müsste ich nicht wenigstens irgendwo im Magentoverzeichnis einen Ordner api finden???

Findest Du unter app/Mage/Api/ .. Ganz nach der Logik der URL domäne.tld/Controller/Action

War bedauerlicherweise auch nicht von Erfolg gekrönt. Hast du irgendwas “spezielles” mittels apt-get installiert?

Nee, habe ich nicht.

PHP evtl. als CGI am Rennen? ... ääähm, ja gute Frage.

Wenn Du dir mit phpinfo() Deine Installation anschaust, steht das in dem Feld “Server API “. Wenn dort steht “Apache 2.0 Handler “ ist Dein php ein Apache Modul.

Hast Du denn auch einen Benutzer für den Webserivce und eine Gruppe angelegt?.. Ahh, eine Gruppe anlegen hat ja auch schon nicht geklappt.. bleibt blos noch die 500er Meldung die Du bekommst… Das sieht mir nach dem “Duplicate Header” Ding aus. Was ja scheinbar mit der CGI-Version von php zusammenhängt… So alles in allem habe ich leider keine Tipp mehr

Viel Glück
Stefan

 
Magento Community Magento Community
Magento Community
Magento Community
 
stefan_herxe
Member
 
Total Posts:  49
Joined:  2008-08-20
 

Hallo Leute,

die Lösung für diese Meldung:

Warning: SimpleXMLElement::addAttribute() [function.SimpleXMLElement-addAttribute]: Attribute name and value are required in /var/www/virtual/domain.de/magento/htdocs/lib/Varien/Simplexml/Element.php on line 367

habe ich gefunden. in der Datei /app/code/core/Mage/Api/etc/api.xml steht ziemlich unten folgendes

<privilegeSets>
<default>
<view descr="View entity"/>
<edit descr="Edit entity"/>
<delete descr=""/>
<create descr=""/>
</default>
</privilegeSets>

Hier einfach was eintrage bei “delete” und “create”. Das wars. Im übrigen habe ich im Laufe der Bastelei so ziemlich alle Fehlermeldungen auch erhalten die hier so stehen. Vielleicht ist das nun wirklich die Lösung. Der andere Vorschlag mit den “error_reporting(0)” ist nicht so dolle, da die Funktion bei jedem Seitenaufruf benutzt wird und somit global die Fehlermeldungen ausschaltet.

ciao, Stefan

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top