Hi couple of things you might want to check first although I appreciate you may already know this/have done it.
While developing a SOAP service, unless you've changed any default settings you're WSDL may be being cached.
You may want to add this to your application.ini under the relevant environment setting eg under development.
phpSettings.soap.wsdl_cache_enabled = 0
That means your WSDL won't be cached and you can rule out any issues on that front - although in saying that your WSDL does seem to be see the method you're trying to use.
Also when auto generating a WSDL with ZF you will want to add basic comments to the method so they can be picked up by the ZF WSDL generator eg adding any @param and @return info. Like this:
/**
* @return string
*/
public function getMessage()
{
return 'ok';
}
So with that done try doing something different with your server method....try
public function serverAction()
{
$baseUrl = 'http://webservices.localhost/index/server';
if( isset( $_GET['wdsl'] ) ) {
$strategy = new Zend_Soap_Wsdl_Strategy_AnyType();
$server = new Zend_Soap_AutoDiscover($strategy);
$server->setUri($baseUrl);
$server->setClass('Web_Service');
$server->handle();
} else {
$server = new Zend_Soap_Server($baseUrl . '?wsdl');
$server->setClass('Web_Service');
$server->handle();
}
}