SOAP-ERROR:解析WSDL:无法从本地文件

时间:2018-04-03 12:33:10

标签: soap wsdl

我有一个位于我服务器的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“

在我重新启动服务器之前它才能恢复正常工作!

你知道我错过了什么吗?

此致

1 个答案:

答案 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);
相关问题