Problem(Abstract)
When using WebSphere® Application Server integrated test environment version 6.0 under Rational® Application Developer 6.0.1.1, the webservices engine loses data which should be returned from the service. The problem does not happen in Application Server 5.1.0.3
TCPMon responses showed that, in the failing case (6.0), the SOAP body information was lost:
<soapenv:Body />
compared to the successful case (5.1.0.3):
<soapenv:Body>
<submitResponse
xmlns="http://www.ibm.com/xmlns/b2b/ecc/v1.0/UpdateOrder">
<bodyPayload> BODY data which should be returned to the client </bodyPayload>
</submitResponse>
</soapenv:Body>
Cause
1. Holder class issue:
When comparing the WSDL file to the generated Java™ files, there is a generated holder class for UpdateOrderContent, which should not be there.
For example, here is a snippet from the WSDL:
<wsdl:message name="submitRequest">
<wsdl:part name="header" element="ecc:header"/>
<wsdl:part name="submit" element="eccthis:submitRequest"/>
</wsdl:message>
<wsdl:message name="submitResponse">
<wsdl:part name="header" element="ecc:header"/>
<wsdl:part name="submitResponse" element="eccthis:submitResponse"/>
</wsdl:message>
A holder class should be generated when the part name is the same between the request and the response. Therefore, there should be a holder class for the header, but not the UpdateOrderContent.
2. PK10733
Resolving the problem
1. Remove this string (in the example) from the WSDL:
parameterOrder="header submit submitResponse"
Specifically, change this:
<wsdl:portType name="UpdateOrder">
<wsdl:operation name="submit" parameterOrder="header submit submitResponse">
<wsdl:input name="submitRequest" message="eccthis:submitRequest"/>
<wsdl:output name="submitResponse" message="eccthis:submitResponse"/>
</wsdl:operation>
</wsdl:portType>
To this
<wsdl:portType name="UpdateOrder">
<wsdl:operation name="submit">
<wsdl:input name="submitRequest" message="eccthis:submitRequest"/>
<wsdl:output name="submitResponse"
message="eccthis:submitResponse"/>
</wsdl:operation>
</wsdl:portType>
2. Upgrade the integrated test server to 6.0.2.11. Note that upgrading the Rational Application Developer does not do the upgrade for the integrated test server.