PEAR is archived and read-only

This mirror preserves historical PEAR package releases and metadata so existing references remain available.

Home » Web Services » SOAP » Bug #4276

Patch which makes SOAP return correct RPC response

Details

Request #4276Patch which makes SOAP return correct RPC response
Submitted2005-05-03 22:59 UTC
Frommir at miras dot org
Assignedchagenbu
StatusNo Feedback
PackageSOAP
PHP Version4.3.11
OSALL
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>