This is my first post. I am a Java/WebMethods developer. I have been working on Java based web services (read as AXIS) for quite sometime and am new to webMethods (read as point and click) way of WS development.
Anyway, I have a problem with webMethods giving out a SOAP message, in the form that cannot be deseralized by the default BeanDeserialized available with Axis. Here is what I am trying to do:
Java/Axis(wsdl2java) client <-->webMethods Service<->webMethods connector<->Java/Axis Web Service.
To put it verbally, I have a Java/Axis Web Service (PingService) which echos the message from Client. I have created a connector in webMethods for this service. Also on webMethods, I have created a set of four documents, PingRequest, PingRequestType, PingResponse and PingResponseType. The documents PingXXXType hold a document reference to the corresponding PingXXX.
While SOAPUI and HTTP Post invocation of the connector, through webMethods work, the Java client is unable to deseralize the response.
The SOAP request (body) is similar to:
<n01:ping soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <pingRequestType xsi:type="pub:__pingRequest" xmlns:pub="http://localhost/test/pub/ping"> <pingRequest xsi:type="pub:__pingRequest2"> <message xsi:type="xsd:string">Hello World</message> </pingRequest> </pingRequestType> </n01:ping>
The SOAP response (body) is similar to:
<ser-root:pingServiceResponse SOAP-ENC:root="1" xmlns:ser-root="http://localhost/test.pub"> <pingResponseType id="id1" xsi:type="sc1:__pingResponse" xmlns:sc1="http://localhost/test/pub/pingService"> <pingResponseType id="id2" xsi:type="sc2:data" xmlns:sc2="http://www.webMethods.com/2001/10/soap/encoding"> <pingResponse id="id3" xsi:type="sc2:data"> <message xsi:type="xsd:string">Hello World</message> </pingResponse> </pingResponseType> </pingResponseType> </ser-root:pingServiceResponse>
I have identified that the WSDL2JAVA output of the response expects the message in the form:
<pingServiceResponse> <pingResponseType> <pingResponse> <message>Hello World</message> </pingResponse> </pingResponseType> </pingServiceResponse>
I would like to know how I may map the output of my Java Service, to the output of the pipeline. The PingResponseType has been added to Input/Output tab of the pipeline and the same is in the order as expected by Axis deserializer.
What am I missing? Any ideas??