|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
Request from IBM WebSphere causes HTTP status 500Hello everyone,
I've been working on a SOAP webservice lately and experienced major problems with an IBM WebSphere client. My setup: - Debian Lenny - PHP 5.2.6-1 - PHP's official SOAP extension I provide a simple service with a single operation named execute(), offering a generic interface for remote procedure calls. I checked my SoapServer with a PHP client and it works like a charm. However if the service consumer runs an IBM WebSphere my methods never get called. I checked Apache's access.log and it says: XXX.XXX.XX.XXX - - [25/May/2009:16:41:56 +0200] "POST /server.php HTTP/1.1" 500 296 "-" "IBM WebServices/1.0" XXX.XXX.XX.XXX - - [25/May/2009:17:00:24 +0200] "POST /server.php HTTP/1.1" 200 891 "-" "My PHP Client" As you can see, the webserver responds with HTTP status 500. I don't have a clue why this happens. Has anybody experienced similar problems with IBM WebSphere + PHP's official SOAP extension? I found a bug report from December 2007, but I'm not entirely sure whether this is a similar problem at all (my script isn't called at all, so it cannot throw a SOAPFault, right?): http://bugs.php.net/bug.php?id=43507 I added some logging calls to server.php and my service class (the one I use in $server->setClass('MyService')), but they are never triggered. Any ideas? I don't have any influence on the customers webservice, so it's tough to make out what causes the problem (at least for me). Does Apache log the complete requests somehow? Maybe that could be helpful? I'd appreciate any help, because I'm a little lost with this problem right now. I'll provice you with further information, if needed. Thanks in advance, I'm looking forward to your responds. Bernd -- Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php |
|
|
Re: Request from IBM WebSphere causes HTTP status 500Hello,
Try to check you apache error log. If you are using Debian Lenny, them it is probably on /var/log/apache2/error.log It might show you why error 500 is happening. Regards, Fernando Morgenstern Em 27/05/2009, às 09:53, sende.mir.post@... escreveu: > Hello everyone, > > I've been working on a SOAP webservice lately and experienced major > problems with an IBM WebSphere client. > > My setup: > - Debian Lenny > - PHP 5.2.6-1 > - PHP's official SOAP extension > > I provide a simple service with a single operation named execute(), > offering a generic interface for remote procedure calls. I checked > my SoapServer with a PHP client and it works like a charm. > > However if the service consumer runs an IBM WebSphere my methods > never get called. I checked Apache's access.log and it says: > > XXX.XXX.XX.XXX - - [25/May/2009:16:41:56 +0200] "POST /server.php > HTTP/1.1" 500 296 "-" "IBM WebServices/1.0" > > XXX.XXX.XX.XXX - - [25/May/2009:17:00:24 +0200] "POST /server.php > HTTP/1.1" 200 891 "-" "My PHP Client" > > As you can see, the webserver responds with HTTP status 500. I don't > have a clue why this happens. Has anybody experienced similar > problems with IBM WebSphere + PHP's official SOAP extension? > > I found a bug report from December 2007, but I'm not entirely sure > whether this is a similar problem at all (my script isn't called > at all, so it cannot throw a SOAPFault, right?): > http://bugs.php.net/bug.php?id=43507 > > I added some logging calls to server.php and my service class > (the one I use in $server->setClass('MyService')), but they > are never triggered. > > Any ideas? I don't have any influence on the customers webservice, > so it's tough to make out what causes the problem (at least for me). > Does Apache log the complete requests somehow? Maybe that could be > helpful? > > I'd appreciate any help, because I'm a little lost with this problem > right now. I'll provice you with further information, if needed. > > Thanks in advance, I'm looking forward to your responds. > > Bernd > -- > Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + > Telefonanschluss für nur 17,95 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 > > -- > PHP Soap Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php |
|
|
Re: Request from IBM WebSphere causes HTTP status 500Hello,
I checked error.log, but it's empty (at least no SOAP-related entries). So I extended my logging and noticed that my server script actually IS being called, though my SOAP operation is not executed. ----- This is my service class MyServer.class.php: class MyServer { public function execute($arg) { Logger::getInstance('server.txt')->writeLog($arg); ... } } ----- This is my server.php: $log = Logger::getInstance('server.txt'); $log->writeLog('POST request:' . "\r\n\r\n" . $HTTP_RAW_POST_DATA); $log->writeLog('Server script was called.'); try { $log->writeLog('Script entered try-block.'); $server = new SoapServer(MY_DIR . 'service.wsdl'); $server->setClass('MyServer'); $server->handle(); } catch (SoapFault $e) { $log->writeLog('Script entered catch-block.'); $log->writeLog('Error message: ' . $e->faultstring); echo $e->faultstring; } $log->writeLog('Server script was ended.'); ----- And finally this is the output I got: ################################################## 29.05.2009 09:40:40 (II) POST request: <SOAP request...> ################################################## 29.05.2009 09:40:40 (II) Server script was called. ################################################## 29.05.2009 09:40:40 (II) Script entered try-block. ################################################## ----- So obviously the SOAP call fails somewhere before or in my service class and HTTP status 500 is thrown. The SOAP request is there and looks valid (at least structure and content are there as expected). Any further ideas? Might there be some encoding problems or something? Has no one experienced similar difficulties? I thought there's quite a bunch of WebSphere services out there. Regards, Bernd -------- Original-Nachricht -------- > Hello, > > Try to check you apache error log. If you are using Debian Lenny, them > it is probably on /var/log/apache2/error.log > > It might show you why error 500 is happening. > > Regards, > > Fernando Morgenstern Nur bis 31.05.: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate und Telefonanschluss nur 17,95 Euro/mtl.!* http://portal.gmx.net/de/go/dsl02 -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php |
|
|
Re: Request from IBM WebSphere causes HTTP status 500Hello once again,
By now it seems like I solved the problem. There was an additional header in the SOAP request, having mustUnderstand set to "1". It goes without saying that PHP's SOAP extension did NOT understand the WS-Security header and consequently threw an internal server error. So I manipulated $HTTP_RAW_POST_DATA prior to calling handle() on my SoapServer and now all works fine (HTTP 200: OK). ----- This is what my solution looks like: $server = new SoapServer(MY_DIR . 'service.wsdl'); $server->setClass('MyServer'); $request = str_replace('mustUnderstand="1"', 'mustUnderstand="0"', $HTTP_RAW_POST_DATA); $server->handle($request); ----- Regards, Bernd -- GMX FreeDSL mit DSL 6.000 Flatrate und Telefonanschluss nur 17,95 Euro/mtl.! http://dslspecial.gmx.de/freedsl-aktionspreis/?ac=OM.AD.PD003K11308T4569a -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php |
| Free embeddable forum powered by Nabble | Forum Help |