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");