I’m currently building a soap service using zend framework. I am developing on a local windows envirment using xampp. When adding a new method to the web service class I was able to call it locally and everything worked a treat, however as soon as I uploaded it to the Centos box it broke with the following error:

"Procedure 'xxx' not present"

Error would look more or less like this:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Server</faultcode>
<faultstring>Procedure 'gettwotandomitems' not present</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Basically PHP is caching the generated WSDL file and you need to delete the cache. All of the cached files for me where kept in /tmp however you can double check by looking in the phpinfo() file.

To fix that problem delete all of the cahced files, then try the soap call again and everything should work fine.

Hope it helps.

Credit goes to: http://artur.ejsmont.org/blog/content/php-soap-error-procedure-xxx-not-present