配置magento soap所遇到的问题及解决方法

2,065 人次阅读
没有评论

共计 1785 个字符,预计需要花费 5 分钟才能阅读完成。

1、错误一:Unable to load Soap extension on the server

解决方法:安装php soap支持模块,下面是安装方法。

(1)、下载php soap的rpm包,下载地址:http://dev.centos.org/centos/5/testing/(一定要注意主机处理器类型选择x86_64或者i386),上传到服务器根目录;

(2)、ssh登陆服务器,运行命令:
[php]
[root@199257 ~]# rpm -ivh php-soap-5.2.10-1.el5.centos.x86_64.rpm
Preparing… ########################################### [100%]
1:php-soap ########################################### [100%]
[root@199257 ~]# service php_cgi restart
Stopping php-cgi: [ OK ]
Starting php-cgi: spawn-fcgi: child spawned successfully: PID: 7651 [ OK ]
[/php]
(3)、这样就OK了。

2、错误二:Parsing WSDL: Couldn’t load from ‘http://www.xxx.com/api/soap/?wsdl’ : failed to load external entity http://www.xxx.com/api/soap/?wsdl

解决方法:修改文件/var/www/magento/app/code/core/Mage/Api/Model/Server/Adapter/Soap.php的135行 (在’return $this’之前).
[php]

} else {
$this->fault(‘0’, ‘Unable to load Soap extension on the server’);
} // <— 添加在这里

return $this;
}
[/php]
若更改此文件不起作用,则需要改/includes/src下的Mage_Api_Model_Server_Adapter_Soap.php文件。

3、错误三:Call to undefined method Mage_Sales_Model_Mysql4_Order_Collection::addExpressionAttributeToSelect()

修改文件 app/code/core/Mage/Sales/Model/Order/Api.php ,将以下语句注释
[php]
/*->addExpressionAttributeToSelect(‘billing_name’,
‘CONCAT({{billing_firstname}}, " ", {{billing_lastname}})’,
array(‘billing_firstname’, ‘billing_lastname’))
->addExpressionAttributeToSelect(‘shipping_name’,
‘CONCAT({{shipping_firstname}}, " ", {{shipping_lastname}})’,
array(‘shipping_firstname’, ‘shipping_lastname’)) */
[/php]
若更改此文件不起作用,则需要改/includes/src下的Mage_Sales_Model_Order_Api.php文件。

4、错误四:Parsing Schema: can’t import schema from ‘http://schemas.xmlsoap.org/soap/encoding/’

解决方法:在soap客户端的服务器的host文件(linux主机:/etc/hosts)中添加服务端域名的解析语句:
yourip www.yourdomain.com

5、错误五:looks like we got no XML document

解决方法:所有的php文件,包括直接和间接调用到的。注意在之后不能有任何空行或空白字符。当然有时候也有可能需要在soap客户端的服务器的host文件(linux主机:/etc/hosts)中添加服务端域名的解析语句: yourip www.yourdomain.com。

正文完
 0