我试图通过传递托管在本地机器上的url来创建一个soap客户端,我的开发环境一直收到这个错误。我过去可以打这个电话,而且它工作得很好。
基本上我所做的就是这样
$client =新的SoapClient('http://virtual.website.com:81/api/?wsdl');
如果我在浏览器中转到url,它就会出现,所以我知道它是正确的位置。在Magento论坛上有一些类似的帖子,但我不知道这是Magento特定的问题。他们提到的所有解决方案我都已经有了。他们说要编辑主机文件,例如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
更新::我发现这不是SOAP的问题,有些东西给我的XML文件添加了额外的空格。
发布于 2011-03-22 04:05:47
更改Magento或本地环境的URL设置后,应始终清除Magento /var/cache/ directory。通常,所有奇怪的错误都会随之消失。
发布于 2012-02-01 01:30:32
此外,该问题还可能与soap.wsdl_cache_dir
目录的权限有关
发布于 2013-03-11 04:45:58
我来晚了,但希望我的回复对以后的人有用。
我也有同样的问题。我安装了Zend Server (PHP 5.3.9),得到了同样的错误。我搜索了很多次,应用了所有可用的解决方案,但都失败了……最后,我安装了wamp,然后在那里运行“Soap客户端”脚本,它成功地运行了。
然后我发现Zend Server (PHP 5.3.9)在“Soap客户端”脚本中有一些默认的bug。我卸载了Zend Server (PHP 5.3.9),安装了Zend Server (PHP 5.4.11),并在那里运行了“Soap客户端”脚本。这一次它成功运行了。
结论:请使用最新的PHP版本(Zend Server)或(Wamp Server),因为在一些PHP版本中存在默认的“Soap客户端”错误,这是我上面提到的一个。
谢谢,卡西夫
https://stackoverflow.com/questions/2976133
复制相似问题