Fatal error: Uncaught SoapFault exception:解決辦法


SOAP-ERROR: Parsing WSDL: failed to load external entity

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://www.webservicex.net/globalweather.asmx?wsdl' : failed to load external entity "http://www.webservicex.net/globalweather.asmx?wsdl" in /www/wwwroot/xxxxx.com/23.php:8 Stack trace: #0 /www/wwwroot/xxxxx.com/23.php(8): SoapClient->SoapClient('http://www.webs...') #1 {main} thrown in /www/wwwroot/xxxxx.com/23.php on line 8

 

 

這個錯誤是我們ehr同步人員和部門信息接口報的錯,直接訪問WSDL也能正常返回

 

php請求接口FCOperate.asmx?WSDL 接口。這里需要注意升級php版本,盡可能升級的到php7.0

 

測試發現產生這個錯誤與PHP版本有關,版本高的不會出現這個問題。

解決方案:

1、修改服務器網關配置,就是OpenSSL,它是一種通信協議,改一發動全身,所以我沒動服務器

2、修改PHP版本再測

3、也就是直接在代碼處修改(推薦),代碼如下:

$wsdl='http://你的地址/PSIGW/PeopleSoftServiceListeningConnector/PSFT_HR/HPS_HRIF001_OA_DEPT.1.wsdl';
$streamContext = array(stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
)));
$client = new \SoapClient($wsdl, $streamContext);
$result=$client->__doRequest($xmldata,$wsdl,'HPS_HFIFOA_DEP_SRVACTN.v1',1,0);
return $result;
就是

 

這一句很關鍵。 

這是我找到解決辦法的地方:http://php.net/manual/en/migration56.openssl.php 

更新日期2018-12-19:我前幾天看日志上面一個接口通的,下面一個接口還是報這個錯,代碼一樣的。於是我下面的代碼改成就OK了:

$wsdl = 'http://地址/PSIGW/PeopleSoftServiceListeningConnector/PSFT_HR/HPS_HRIF001_OA_EMPL.1.wsdl';
/*$streamContext = array(stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false
)
)));*/
$opts = array(
'ssl' => array('ciphers' => 'RC4-SHA', 'verify_peer' => false, 'verify_peer_name' => false)
);
$params = array('encoding' => 'UTF-8', 'soap_version' => SOAP_1_2, 'trace' => 1, 'exceptions' => 1, "connection_timeout" => 180, 'stream_context' => stream_context_create($opts));
$client = new \SoapClient($wsdl, $params);
$result = $client->__doRequest($xmldata, $wsdl, 'HPS_HFIFOA_EMP_SRVACTN.v1', 1, 0);
return $result;
  

注意看上面紅色部分

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM