PHP Magento SOAP-ERROR:解析WSDL:无法从urlpath加载

时间:2010-06-04 16:46:00

标签: php soap magento

我正在尝试通过传递托管在我的本地计算机上的URL,我的开发环境来创建一个soap客户端,并且我一直收到此错误。我用来做这个电话,它工作得很好。

基本上我所做的就是这个

$ client = new SoapClient('http://virtual.website.com:81/api/?wsdl');

如果我在浏览器中访问该网址,它就会出现,所以我知道它是正确的位置。在Magento论坛上有一些类似的帖子,但我不知道这是Magento的具体问题。他们提到的一切都是我已经拥有的解决方案。他们说要编辑hosts文件,例如127.0.0.1 website.com

我已将此设置为虚拟主机。

以下是error_log中的错误

[Fri Jun 04 12:30:37 2010] [error] [client 127.0.0.1] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://virtual.website.com:81/api/soap/?wsdl' : XML declaration allowed only at the start of the document\n in /usr/local/sites/virtual.website.com/www/CUSTOMSCRIPTS/removeProductImages.php on line 6
[Fri Jun 04 12:30:37 2010] [error] [client 127.0.0.1] PHP Stack trace:
[Fri Jun 04 12:30:37 2010] [error] [client 127.0.0.1] PHP   1. {main}() /usr/local/sites/virtual.website.com/www/CUSTOMSCRIPTS/removeProductImages.php:0
[Fri Jun 04 12:30:37 2010] [error] [client 127.0.0.1] PHP   2. SoapClient->SoapClient(*uninitialized*) /usr/local/sites/virtual.website.com/www/CUSTOMSCRIPTS/removeProductImages.php:6

UPDATE ::我发现这不是SOAP的问题,而是为我的XML文件添加了额外的空格。

5 个答案:

答案 0 :(得分:0)

更改Magento或本地环境的URL设置后,应始终清除Magento / var / cache /目录。通常所有奇怪的错误都会消失。

答案 1 :(得分:0)

答案似乎是我们没有启用 xmlrpc PHP扩展。一旦我们这样做,错误消失了。

答案 2 :(得分:0)

此问题也可能与soap.wsdl_cache_dir目录

上的权限有关

答案 3 :(得分:0)

我迟到了,但希望我的回复对将来有用。

我有完全相同的问题。我安装了Zend Server(PHP 5.3.9)并得到了同样的错误。我搜索了很多并应用了所有可用的解决方案但失败了.... 最后,我安装了wamp,然后在那里运行'Soap Client'脚本,它运行成功。

然后我达到了这一点,Zend Server(PHP 5.3.9)在'Soap Client'脚本中有一些默认错误。我卸载了Zend Server(PHP 5.3.9)并安装了Zend Server(PHP 5.4.11)并在那里运行'Soap Client'脚本。这次它成功运行。

结论: 请使用最新的PHP版本(Zend Server)或(Wamp Server),因为在某些PHP版本中存在默认的“Soap Client”错误,我在上面提到过。

谢谢, 卡希夫

答案 4 :(得分:0)

我通过启用php_openssl扩展在我的WAMP设置中解决了这个问题,因为我使用的https://加载了URL。