Bug #50547 [Com]: SoapServer Fatal errror in WSDL mode
| From: | chinigo at gmail dot com | Date: | Wed, 17 Aug 2011 14:28:35 +0000 |
| Subject: | Bug #50547 [Com]: SoapServer Fatal errror in WSDL mode | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-162634@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=50547&edit=1
ID: 50547
Comment by: chinigo at gmail dot com
Reported by: rsumibcay at reddoor dot biz
Summary: SoapServer Fatal errror in WSDL mode
Status: Open
Type: Bug
Package: SOAP related
Operating System: Ubuntu Linux
PHP Version: 5.2.12
Block user comment: N
Private report: N
New Comment:
mdekrijger's suggestion about disabling Xdebug worked for me too. Adding
xdebug_disable() immediately before the SOAP call resulted in a Fatal SOAP error
being converted to a catchable SOAP fault.
Previous Comments:
------------------------------------------------------------------------
[2011-02-24 16:00:36] mdekrijger at e-sites dot nl
Xdebug might be the problem. When using xdebug_disable() before calling the
handle() method, the server responds with a proper SOAP message which says that
something went wrong.
------------------------------------------------------------------------
[2011-02-24 09:54:31] mdekrijger at e-sites dot nl
Does anyone have an alternative solution for this problem? (while this bug remains
open?)
We really want to provide some information about the wrong type in the return soap
response. So implementing our SOAP services would be a much easier job.
------------------------------------------------------------------------
[2010-02-01 09:48:05] jitka at darbujanova dot cz
I can confirm this. (http://bugs.php.net/bug.php?id=50895)
------------------------------------------------------------------------
[2009-12-21 20:18:01] rsumibcay at reddoor dot biz
Description:
------------
SoapServer dies with fatal error in WSDL mode when a soap argument is a ComplexType with a member
defined as int in the XSD, but the member value is passed as a non-numeric string.
Reproduce code:
---------------
1. Define a ComplexType with an int data member:
http://crkt190.reddoor.biz/fatalerror/complex_types.xsd
2. Define a WSDL that uses the ComplexType as an argument to the soap function:
http://crkt190.reddoor.biz/fatalerror/fatalerror.wsdl
3. Create a soap envelope with a non-numeric string as the value for the int data member:
http://crkt190.reddoor.biz/fatalerror/fatalerror-soap-envelope.xml
4. Make a soap request using the soap envelope in step 3.
Expected result:
----------------
The SoapServer should not die with a fatal error. The SoapServer should respond with a SoapFault, or
let the call pass through so the business logic (mapped handler) can do validation and handle the
error appropriately.
Actual result:
--------------
500 HTTP response from server. The HTTP response body contains an error message and stack trace.
Fatal error: SOAP-ERROR: Encoding Violation of encoding rules in ...
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=50547&edit=1