我的客户正在使用Unleashedsoftware.com连接到Magento商店.但它给出了这个错误.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>WSDL</faultcode>
<faultstring>
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.domain.com/index.php/api/v2_soap/index/wsdl/1/' : Premature end of data in tag definitions line 2
</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
浏览http://www.domain.com/index.php/api/v2_soap/index/时,Firebug给了我“500内部服务错误”.
当我浏览http://www.domain.com/index.php/api/v2_soap/index/wsdl/1/时,我将获得有效的XML数据.
我检查了服务器日志文件,看起来像:
[Thu Aug 30 22:22:25 2012] [warn] [client 92.92.92.92] mod_fcgid: stderr: in /home/doaminuser/public_html/lib/Zend/Soap/Server.php on line 762
我一直在寻找几天,今天我试图将整个网站复制到另一个测试服务器,它似乎正在工作!所以这似乎是一个服务器问题.
请问,任何人都知道可能是什么问题?
有没有更好的方法来调试此问题,任何示例代码或调试提示.
Magento版本是1.6.2
谢谢.
最佳答案 由于Magento服务器与自身通信的问题,很多时候Magento的SOAP API失败.
也就是说,PHP的SOAP实现要求SOAP服务器本身通过http获取WSDL文件,并且本地网络配置问题妨碍了Magento获取它自己的WSDL.
您可以通过SSH连接到Magento服务器并运行以下命令来调试它
curl -l 'http://www.example.com/index.php/api/v2_soap/index/wsdl/1/' > /tmp/wsdl.xml
然后检查wsdl.xml文件.因为您是从Web服务器执行此操作,所以可能会获得与从本地浏览器执行此操作时不同的结果.