PHP soap访问接口出错汇总及解决办法

PHP SOAP 扩展在使用时出现的状况:

1、装载错误

  错误描述:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://*****.14:8080/rpc/soap/jirasoapservice-v2?wsdl' : failed to load external entity "http://*****.14:8080/rpc/soap/jirasoapservice-v2?wsdl" 

    原因:SELinux 阻止 httpd 守护程序与同一台机器上的 LDAP 服务器沟通。

    解决办法:

$setsebool -P httpd_can_network_connect on  

2、开发过程中更新接口后,无法访问

  错误描述:

Fatal error: Uncaught SoapFault exception: [Client] Function (”test”) is not a valid method for this service in D:\xampp\htdocs\clien.php:5 Stack trace: #0 [internal function]: SoapClient->__call(’test’, Array) #1 D:\xampp\htdocs\clien.php(5): SoapClient->test() #2 {main}

 原因:PHP的为了更好的性能,会将wsdl缓存。这样导致更新接口后,客户端访问的仍然是旧接口,导致出错。

 解决方案:

    (1)、

[soap]
; 修改此项设置不对wsdl进行缓存
soap.wsdl_cache_enabled=1
; 或者在此文件夹下/tmp找到已经缓存的wsdl-开头的文件并将其删除
soap.wsdl_cache_dir="/tmp"

  (2)、

ini_set("soap.wsdl_cache_enabled", "0"); 

 

 

posted @ 2013-02-20 18:59  kelite  阅读(1780)  评论(0编辑  收藏  举报