Home » Web Services » SOAP » Bug #4276
Patch which makes SOAP return correct RPC response
Details
| Request #4276 | Patch which makes SOAP return correct RPC response |
|---|---|
| Submitted | 2005-05-03 22:59 UTC |
| From | mir at miras dot org |
| Assigned | chagenbu |
| Status | No Feedback |
| Package | SOAP |
| PHP Version | 4.3.11 |
| OS | ALL |
| Roadmaps | (Not assigned) |
Comments
[2005-05-03 22:59 UTC] mir at miras dot org
Description:
------------
The patch addresses a number of bug issues in SOAP.
SOAP::Server. The generated SOAP message (severe bug) The response generated any requests does not apply to the SOAP specifications - both 1.1 and 1.2. The problem is that the response is not reflecting the WSDL nor the way specified in the SOAP 1.1 or 1.2. The problem though is only evident way returning lists of complex types. But in general strong typed programming languages will have problems when serializing the response fra SOAP
I have succesfully been able to test clients written in C#, Java-Axis, Perl, PHP and Python.
The patch and the example clients can be fetch from this address: ftp://ftp.datanom.net/pub/pear/
Reproduce code:
---------------
Call any method on any SOAP server written with PEAR::SOAP
Expected result:
----------------
<Expected>
<SOAP-ENV:Body>
<ns5:searchResponse xmlns:ns5="urn:uddiServer"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<Services xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="soap-enc:Array" soap-enc:arrayType="ns5:Service[2]">
<Service xsi:type="ns5:Service">
<businessKey
xsi:type="xsd:string">e869ee12-29de-4909-abb7-84d97b11167f</businessKey>
<serviceKey
xsi:type="xsd:string">b2916d6d-7ce1-4456-9d6b-dda9a11b1a45</serviceKey>
<name xsi:type="xsd:string">IBMTestRegistryWS</name>
</Service>
<Service xsi:type="ns5:Service">
<businessKey
xsi:type="xsd:string">e869ee12-29de-4909-abb7-84d97b11167f</businessKey>
<serviceKey
xsi:type="xsd:string">65ab4d1c-049f-4670-b3d2-8ab787835089</serviceKey>
<name xsi:type="xsd:string">IBMWStomcat</name>
</Service>
</Services>
</ns5:searchResponse>
</SOAP-ENV:Body>
</Expected>
Actual result:
--------------
<Actually>
<SOAP-ENV:Body>
<ns4:searchResponse>
<return xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:Struct[2]"
SOAP-ENC:offset="[0]"> <item>
<businessKey
xsi:type="xsd:string">e869ee12-29de-4909-abb7-84d97b11167f</businessKey>
<serviceKey
xsi:type="xsd:string">b2916d6d-7ce1-4456-9d6b-dda9a11b1a45</serviceKey>
<name xsi:type="xsd:string">IBMTestRegistryWS</name>
</item>
<item>
<businessKey
xsi:type="xsd:string">e869ee12-29de-4909-abb7-84d97b11167f</businessKey>
<serviceKey
xsi:type="xsd:string">65ab4d1c-049f-4670-b3d2-8ab787835089</serviceKey>
<name xsi:type="xsd:string">IBMWStomcat</name>
</item>
</return>
</ns4:searchResponse>
</SOAP-ENV:Body>
</Actually>