PHP Soap Server Error – Procedure not present

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

Related posts:

  1. Changing Plesk Fast CGI to Apache PHP with ZF
  2. Setup Ubuntu as a Web Server

  • http://www.davidhurst.co.uk David Hurst

    Put the following line at the top of the client page:

    ini_set(“soap.wsdl_cache_enabled”, 0);

    No more caching.

  • Juan Carlos Ruiz Salazar

    I have the same problem, but i update php until 5.2.13 and works fine.

    With php 5.2.14 works too.

    Best regards

Twitter Updates