2009年2月24日星期二

[fw-webservices] Zend_Soap_Server not working on a production environment

Hi, I am facing an issue while writing a simple SOAP server with ZF. When I execute a method of the web service (getData) on a testing server, everything works perfectly. But when I try to run it on my production environment, I get an Apache server error (HTTP 500): the PHP script times out while trying to execute :
$server = new SoapServer($this->_wsdl, $options);
in Zend_Soap_Server::_getSoap().

If I request the WSDL, the server sends it back properly on BOTH environments.
I enabled the SOAP server on PHP the same way on testing and production environments (both Linux Debian 1.6.x):
 extension=php_soap.so [soap] soap.wsdl_cache_enabled=0 
Any idea? Here is the controller action:
 	public function importAction() 	{         $this->_helper->ViewRenderer->setNoRender();         $this->_helper->layout->disableLayout();          $uri = 'http://' . $_SERVER['HTTP_HOST'] . '/shipment/import?wsdl';     	if (isset($_GET['wsdl'])) {         	$wsdl = new Zend_Soap_AutoDiscover();         	// The default URI is set to         	// 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']         	// which is exactly what we want. No need to specify it.         	$wsdl->setClass('ShipmentSynchronization');         	$wsdl->handle();         } else {             $server = new Zend_Soap_Server($uri, array('soap_version' => SOAP_1_2));             $server->setClass('ShipmentSynchronization');             $server->handle();         }     } 
And here is the service class skeleton:
 class ShipmentSynchronization {     /**      * Send a flat table resulting of an inner join between...      * @return string The shipments, containers and references.      */     public function getData()     {         // ...     }     /**      * Transfer data from temporary table into history table after...      * @param string $data      * @return boolean Dummy value without which WinDev is unable to build its SOAP client      */     public function acknowledgeData($data)     {         // ...     } } 
Guillaume ORIOL
Sofware architect
Technema


View this message in context: Zend_Soap_Server not working on a production environment
Sent from the Zend Web Services mailing list archive at Nabble.com.

没有评论: