Bug #50547 [Com]: SoapServer Fatal errror in WSDL mode
Edit report at https://bugs.php.net/bug.php?id=50547&edit=1
ID: 50547
Comment by: dp0 at yandex dot ru
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:
Encoding: Violation of encoding rules
was my problem too, when trying to work with WSDL created in JAVA.
The problem was solved by moving to using the 1.2 version of SOAP on server and client.
Previous Comments:
------------------------------------------------------------------------
[2011-08-17 14:28:34] chinigo at gmail dot com
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.
------------------------------------------------------------------------
[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
Thread (8 messages)