Soap 应用遇到的问题 failed to load external entity

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘XXX’ : failed to load external entity

与合作方的服务进行对接,对方使用SOAP通讯方式。我第一接触,然后尝试使用对方提供的DEMO。先在控制台下通过 php 命令来跑。OK 一切正常,能返回正确结果。

接下来开始做功能的集成,然而就出现了上述类似的错误,开始我以为是我这里的某某程序冲突引起(PHP版本我都怀疑过!),差点去重新安装PHP版本。

各种搜索类似的问题,无意间看到有人提出是soap缓存的问题。我尝试了关闭缓存,后果然在WEB端能正常执行了。

关闭缓存的方式有两种 修改 PHP.ini大法 和 直接使用PHP的配置函数来设置。因为我对SOAP不是很熟悉,因此觉得修改php.ini的话感觉不是很放心,就干脆使用函数来关闭,至少是在我用的地方进行该配置。

很多人说关闭缓存有两个参数缓存都要关闭 分别是 cache_enabled 和 cache_ttl

如下:

  1. ini_set('soap.wsdl_cache_enabled', "0"); //关闭wsdl缓存
  2. ini_set('soap.wsdl_cache_ttl', "0");

如果你希望直接修改 php.ini 的配置,可以直接在 php.ini 里搜索 soap 找到他们然后修改为

  1. soap.wsdl_cache_enabled=0
  2. soap.wsdl_cache_ttl=0


发表评论?

1 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

无觅相关文章插件,快速提升流量