我有一个位于我服务器的WSDL文件,我使用这个文件很多用SoapClient
$client = new \SoapClient(dirname(__FILE__) . DIRECTORY_SEPARATOR . self::$url, array(
'connection_timeout' => 180,
'verifypeer' => false,
'verifyhost' => false,
'soap_version' => SOAP_1_2,
'stream_context' => stream_context_create(['ssl' => [
'verify_peer' => FALSE,
'verify_peer_name' => FALSE,
'allow_self_signed' => TRUE
]])
));
它按预期工作,但有时它仍然给我这个错误
SOAP-ERROR:解析WSDL:无法从'/var/www/public_html/laravel/app/Classes/orders_internal.wsdl'加载:无法加载外部实体“/ var / www / public_html / laravel / app /Classes/orders_internal.wsdl“
在我重新启动服务器之前它才能恢复正常工作!
你知道我错过了什么吗?
此致
答案 0 :(得分:0)
我也遇到了这个问题。我有一个流程,我必须对soap api 进行5 次不同的调用(在同一执行中)。
只有最后一次调用出现错误:
<img
src={
'http://openweathermap.org/img/wn/' +
{this.state.weatherdata.weather[0].icon} +
'@2x.png'
}
></img>
我意识到就在最后一次调用之前,这是一个禁用加载外部实体的逻辑:
SOAP-ERROR: Parsing WSDL: Couldn't load from /var/www/html/SomFile.wsdl failed to load external entity.
确保在代码的某些部分没有禁止加载外部实体的逻辑。
需要注意的是 libxml_disable_entity_loader() 将被弃用:
警告
libxml_disable_entity_loader(true);