Mapping Pipeline Output to Connector output.

Hello all,

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??

Thanks

Regds
Gautham Kasinath

Let me guess. This is using SOAP-RPC style messaging, right?

Please see the extensive discussion on document/literal vs soap-rpc in this forum and take a look at some of the examples.

Interoperabilty between many soap clients is very poor using soap-rpc.

Mark

Thanks for that Mark.
I understand that there may be inter-op problems between SOAP-RPC services.
Cheers
G

Still trying to get my head around webMethods way of web services (RPC and Doc-Lit) :frowning:

Please expect to see many questions on simple thingsā€¦ :frowning:

Cheers
G