导航

    <#CACHE_INCLUDE_NAVBAR#>
« KillTest.net題庫網12月7日提供最新考試題庫一覽表SUN the latest 310-610 dump »

the news about IBM SOAP body showed by TCPMon response is null

2009年12月10日 IBM 0条评论 0个引用

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. 
 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最近发表

Powered By Z-Blog 1.8 Arwen Build 81206