One Star

In cCXF client im not getting the multiref fields from SOAP Reply

Although I am actually getting a valid soap response from the SOAP UI an empty response is returned to after cCXF step in the mediation route. The route is not mapping the multiref value in the SOAP response

<ns1:balanceEnquiryResponse soapenv:encodingStyle=" .org/soap/encoding/" xmlns:ns1="urn:BalanceEnquiry">
            <balanceEnquiryReturn href="#id0" />

The following part reply is coming while i test from SOAP UI, but 
<multiRef id="id0" soapenc:root="0 " soapenv:encodingStyle="" xsi:type="ns2:BalanceEnquiryRspsInfo" xmlns:soapenc=" ap/encoding/" xmlns:ns2="">
            <messageID xsi:type="xsd:int">235894</messageID>
            <instCode xs="xs" i:type="soapenc:string">IDT</instCode>
            <txnType xsi:type="soapenc:string">3</txnType>
            <PAN xsi:type="soapenc:string">5274421040719276</PAN>
            <localDate xs="xs" i:type="xsd:date">2007-09-28</localDate>
            <localTime xsi:type="xsd:long">134206</localTime>
            <avlBal xsi:type="xsd:double">9.0</avlBal>
            <blkAmt xsi:type="x sd:double">0.0</blkAmt>
            <currCode xsi:type="soapenc:string">GBP</currCode>
            <loginID xsi:type="soapenc:string" xsi:nil="true" />
            <sysDate xsi:type="xsd:dat e">2007-10-18</sysDate>
            <actionCode xsi:type="soapenc:string">000</actionCode>

How to over come this issue. Ive chosen the dataFormat as payload so im getting only the SOAP body on the response with out the linking. Thought of writing a xsl to create the response but i need to complete soap message to do the same. can you suggest some solution?

Re: In cCXF client im not getting the multiref fields from SOAP Reply

Could you please post the screenshot of your job setting in the mediation route into forum?
Best regards
Don't forget to give kudos when a reply is helpful and click Accept the solution when you think you're good with it.
One Star

Re: In cCXF client im not getting the multiref fields from SOAP Reply

we had similar problem and - do not use multiref (encoded) messages. I know - sometimes you have a backend service which returns such message and you cannot change that. Apparently the CXF library doesn't support it directly anymore (neither Axis2 or almost none of current frameworks). By default the CXF payload is parsed as the first element in the soap body.
As a solution - you may want to use MESSAGE format binding for WS calls (not PAYLOAD), then the message is treated as a stream (or XML document) and with little luck you may try to parse the multiref node node from the soap Body.
Be aware that using message format you have to build and parse whole soap message yourself and some default things won't work (such as security interceptors, ...). For some services returning encoded responses we even had to build custom camel processors to handle messages on dispatch level (using jax-ws-dispatch-api).
Have fun
One Star

Re: In cCXF client im not getting the multiref fields from SOAP Reply

Thanks for your reply Gabrial. 
Yes! Talend wont support the RPC type wsdl. I've used the RAW type message format to get the complete response and then used style-sheet to include the references. When i was doing the same the response where coming as streamed output. I could print the response but was not able process is further. Route cause for this is, Only once you can read the message from stream. I've converted into String and used in the route. 
 The another issue faced in the flow like starting point route message type was PAYLOAD so i had to set the header before sending the response with the help exchange.