SOAP 缓存问题

今天在进行soap调用老是出错,去其他人的机器上试下,就好了,下面是从网上找到的原因


       一开始不知道还有SOAP缓存。因为类文件改变了,重新生成了WSDL文件,测试运行,竟然不能通过。给我的第一感觉是WSDL文件问题,重新生成还不行,好像感觉就没有执行新生成的WSDL文件,难道有缓存,找找我没有做缓存呀,调试快一天了都不行。

开始想其它办法,打开PHP.INI文件,查找soap,发现几行字让我顿时明白了。

soap.wsdl_cache_enabled=1
; Sets the directory name where SOAP extension will put cache files.
soap.wsdl_cache_dir="/tmp"

不然,会报: Fatal error: Uncaught SoapFault exception: [Client] Function (”test”) is not a valid method for this service in D:\xampp\htdocs\clien.php:5 Stack trace: #0 [internal function]: SoapClient->__call(’test’, Array) #1 D:\xampp\htdocs\clien.php(5): SoapClient->test() #2 {main}错误。

缓存竟然是自己生成的,还很隐蔽。怪不得找半天。

要是你碰见SOAP的错误,一定要先看下缓存删除没,以免事倍功半哦。

补充:天大的秘密,调用过WebService以后,你浏览的服务器和调用的服务器都有一份WSDL缓存文件,也就是说要把这两个服务器上的都删去,改动才会生效。变态啊!

在页面顶部可以加上:
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache 调试时加上这一句很重要,去除缓存做测试.

转载于:https://www.cnblogs.com/xuechao/archive/2011/05/06/2039329.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值