service.
They were too restrictive for the SoapServer to instantiate properly.
After their modification, the web service was operating normally.
Thank you for your help.
Guillaume Oriol wrote:
>
> On the production environment, the web service client is on a LAN and
> accesses the internet through a proxy. Could it be a possible explanation?
> I am not sure, as I see the request coming into the PHP application.
>
> Do you see something else?
>
>
> beberlei wrote:
>>
>> must be, Zend_Soap_Server checks for the extension in the constructor and
>> throws an exception if not enabled.
>>
>> i am a bit in the dark here, its an error i havent seen anywhere before.
>>
>> On Tuesday 24 February 2009 19:36:08 Matthew Weier O'Phinney wrote:
>>> -- Guillaume Oriol <goriol@technema.fr> wrote
>>>
>>> (on Tuesday, 24 February 2009, 10:01 AM -0800):
>>> > thank you for your answer Benjamin,
>>> >
>>> > Production data is very light actually (less than 100 rows in a
>>> table).
>>> > It seems there is no bottleneck in that production environment.
>>> > The program runs normally until it raises the new SoapServer()
>>> > instruction. Then, I don't know exactly what happens because I can not
>>> > trace inside this PHP class. It looks like PHP tries to instantiate
>>> > SoapServer class but can't do it and tries it repeatedly. Or may be it
>>> is
>>> > waiting for something. I don't know. What I know is the following
>>> > operations (in the _getSoap() function) never get executed. Then,
>>> > probably Apache sends an error after a timeout (about 30s to 1 min).
>>> >
>>> > Any clue?
>>>
>>> Just a stab in the dark... is soap support enabled in PHP on your
>>> production server?
>>>
>>> > beberlei wrote:
>>> > > what do you mean by timeout? 30 secs execution? is it maybe that
>>> your
>>> > > production data is so much more huge, that your code is running into
>>> > > problems?
>>> > > what is the actual bottleneck in the timeouting operation?
>>> > >
>>> > > greetings,
>>> > > benjamin
>>> > >
>>> > > On Tuesday 24 February 2009 17:40:42 Guillaume Oriol wrote:
>>> > >> 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
>>> > >
>>> > > --
>>> > > Benjamin Eberlei
>>> > > http://www.beberlei.de
>>> >
>>> > -----
>>> > Guillaume ORIOL
>>> > Sofware architect
>>> > Technema
>>> > --
>>> > View this message in context:
>>> >
>>> http://www.nabble.com/Zend_Soap_Server-not-working-on-a-production-enviro
>>> >nment-tp22183813p22186993.html Sent from the Zend Web Services mailing
>>> > list archive at Nabble.com.
>>
>> --
>> Benjamin Eberlei
>> http://www.beberlei.de
>>
>>
>
>
-----
Guillaume ORIOL
Sofware architect
Technema
--
View this message in context: http://www.nabble.com/Zend_Soap_Server-not-working-on-a-production-environment-tp22183813p22313471.html
Sent from the Zend Web Services mailing list archive at Nabble.com.
没有评论:
发表评论