繁体   English   中英

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

[英]PHP Magento SOAP-ERROR: Parsing WSDL: Couldn't load from urlpath

我正在尝试通过传递托管在我的本地机器、我的开发环境上的 url 来创建一个 soap 客户端,但我不断收到此错误。 我曾经能够拨打这个电话,而且效果很好。

基本上我所做的就是这个

$client = new 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 文件中添加了额外的空格。

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

我遇到了完全相同的问题。 我已经安装了 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”错误,我在上面提到过。

谢谢,卡西夫

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

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

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

此外,问题可能与soap.wsdl_cache_dir目录的权限有关

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM