From: gdk-spam at yes-co dot nl Operating system: Debian r4.0 PHP version: 5.2.5 PHP Bug Type: SOAP related Bug description: incorrect SOAP Encoding ERROR on response
Description: ------------ The PHP SOAP server incorrectly reports an SOAP-ERROR when the SOAP response is returned in WSDL mode. The error indicates an optional property is missing. The property is defined within a XML Schema sequence which has its 'minOccurs' attribute set to '0', which should make the properties optional. The WSDL validates correctly against WS-I Basic Profile 1.1 + SOAP Binding Profile 1.0 checks using Mindreef SOAPscope. We recently upgraded from PHP 5.1.4 to PHP 5.2.4 (ZendCore package). We are unable to reproduce this error in 5.1.4. We've stripped down the Webservice and request/response, the production code is ofcourse much more complicated. If you uncomment the 'Letter' and 'Volgnummer' properties the SOAP response is returned without a problem Reproduce code: --------------- WSDL: http://devel.yes-co.com/zendbugs/ws_kadaster.wsdl SOAP Server: http://devel.yes-co.com/zendbugs/ws_kadaster.phps SOAP Client: http://devel.yes-co.com/zendbugs/ws_kadaster_client.phps Expected result: ---------------- ws_kadaster_client.php output: stdClass Object ( ) Actual result: -------------- ws_kadaster_client.php output: SoapFault Object ( [message:protected] => SOAP-ERROR: Encoding: object hasn't 'Letter' property [string:private] => [code:protected] => 0 [file:protected] => /vol/vol0/home/geoffrey/public_html/ws_kadaster_client.php [line:protected] => 11 [trace:private] => Array ( [0] => Array ( [function] => __call [class] => SoapClient [type] => -> [args] => Array ( [0] => GetKadastraalBericht [1] => Array ( [0] => stdClass Object ( ) ) ) ) [1] => Array ( [file] => /vol/vol0/home/geoffrey/public_html/ws_kadaster_client.php [line] => 11 [function] => GetKadastraalBericht [class] => SoapClient [type] => -> [args] => Array ( [0] => stdClass Object ( ) ) ) ) [faultstring] => SOAP-ERROR: Encoding: object hasn't 'Letter' property [faultcode] => SOAP-ENV:Server ) <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://webservice.yes-co.nl/ws_kadaster"><SOAP-ENV:Body><ns1:GetKadastraalBerichtRequest/></SOAP-ENV:Body></SOAP-ENV:Envelope> <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>SOAP-ERROR: Encoding: object hasn't 'Letter' property</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> -- Edit bug report at http://bugs.php.net/?id=44265&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=44265&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=44265&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=44265&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=44265&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=44265&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=44265&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=44265&r=needscript Try newer version: http://bugs.php.net/fix.php?id=44265&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=44265&r=support Expected behavior: http://bugs.php.net/fix.php?id=44265&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=44265&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=44265&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=44265&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=44265&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=44265&r=dst IIS Stability: http://bugs.php.net/fix.php?id=44265&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=44265&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=44265&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=44265&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=44265&r=mysqlcfg
