I am having constant problems with WSDL for the Web Service being cached. I am seeing the WSDL definition, but it doesn’t include the methods I’ve defined using @soap in the function comments. Of course it all works fine in my dev environment, but as soon as I put it in a staging or live environment, the caching pain begins…
I have tried using ini_set to disable different caches, ie soap.wsdl_cache_ttl, soap.wsdl_cache_enabled, eaccelerator.enable, but this didn’t work
I have disabled the same options in php.ini. eaccelerator.enable=0 worked for a short time, and I got the full WSDL definition, but re-enabled it and when I came back to check it 12 hours later it is back to the cached version with no methods defined.
Can anyone think of any other ways I can get around this? I’m at the end of my tether, and about to start building a REST implementation because this SOAP stuff sucks…
You talk about a web service you created with Yii (instead of a SoapClient)? All the settings you mentioned affect the soap client WSDL cache. Did you maybe configure CWebServive::wsdlCacheDuration in your service class?
Sorry, just reading the code of CWebService i see, that wsdl_cache_enabled also affects the wsdl cache for SoapServer. So to be sure also ini_set() this to 0.