即使清除了缓存目录,SoapClient __soapCall也会调用旧版本的服务

时间:2017-04-28 04:16:54

标签: php symfony

我使用BeSimpleSoap向基于WSDL的Web服务发送请求。其中一项服务最近更新。 我可以通过SoapUI 访问它,但是当我使用更新的函数(具有相同的URL和凭据)调用__soapCall时,它会抛出异常:

SoapFault exception: [Client] Function ("getXXXX") is not a valid method for this service 

我尝试了什么:

  • 已删除soap.wsdl_cache_dir(使用rm /tmp/wsdl-*
  • 清除Symfony缓存

我在php.ini中的soap配置:

soap.wsdl_cache => 1 => 1
soap.wsdl_cache_dir => /tmp => /tmp
soap.wsdl_cache_enabled => 1 => 1
soap.wsdl_cache_limit => 5 => 5
soap.wsdl_cache_ttl => 86400 => 86400

我该怎么办?它一直在调用旧版本。

1 个答案:

答案 0 :(得分:0)

事实证明,删除soap.wsdl_cache_dir rm /tmp/wsdl-*是不够的。

遵循这些步骤实际上对我有用:

  1. 在php.ini
  2. 中设置soap.wsdl_cache_enabled = 0
  3. 重启httpd(此后,异常变为SOAP-ERROR: Parsing WSDL: Couldn't load from '/wsdl_947060b0c026bc9194617a747e1b22ab.cache' : failed to load external entity "/wsdl_947060b0c026bc9194617a747e1b22ab.cache"。我不知道原因。)
  4. 在php.ini
  5. 中设置soap.wsdl_cache_enabled = 1
  6. 重新启动httpd