On Thu, Apr 29, 2010 at 5:22 PM, Damian Carey <[email protected]> wrote:

> Hello all,
>
> The summary of this post is "Can Axis2 support MultiRef"
>
> I'm Java desktop guy who is a novice at SOAP / HTTP / multiref / etc.
> I had never heard of multiref until today.
>
> Some months ago a large insurance company gave permission for our app
> to connect to their system via their SOAP interface.  They kindly
> provided the appropriate WSDL and we set about a few months work
> implementing the client end of the connection. We've used Axis2, ADB,
> and JAXB where appropriate. We are one of several ISVs who utilize
> this connection, and we have ZERO influence over their interface &
> server. It is a quite big and complex WSDL, and the generated stub is
> about 13,000 lines long. We could not test until all this work was
> done, so we have done a LOT of work before we were able to discover
> this issue.
>
> Now we are testing we are finding an error.  Please remember I am a
> novice at anything to do with SOAP / Axis2 / ADB / etc so this may not
> make sense.
>
> We can connect via HTTPS, send a "request", and get a "response", but
> the response generates an "ADBException: Unexpected subelement".
> Looking at the wire trace we received from the server we see the soap
> message ...
>
> ---start-------------
> <soapenv:Envelope>
>  <soapenv:Body>
>  <ns1:getAckResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
>   <getAckReturn href="#id0"/>
>  </ns1:getAckResponse>
>  <multiRef id="id0" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> xsi:type="ns2:TransReport">
>   <errorMessage xsi:type="soapenc:string"/>
>   <transStatus href="#id1"/>
>   <uniqueId xsi:type="soapenc:string"/>
>  </multiRef>
>  <multiRef id="id1" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> xsi:type="xsd:int">-1</multiRef>
>  </soapenv:Body>
> </soapenv:Envelope>
> ---end---------------
>
> I am not familiar with SOAP msg formats, but I do know that the
> correct value for transStatus in this situation is "-1". I can see
> that "-1" is at "id1" in the message.
>
> So I started searching the net looking for information.
>
> I found this message
> http://www.mail-archive.com/[email protected]/msg26972.html
> entitled "AXIS2 - ADB and multiref?" that suggests that Axis2 does not
> support multiref, but Axis1 might.
>
> <email-snip>
> Multiref is not supported in document/literal messages. (The multirefs
> would not conform to the literal schema unless the schema explicitly
> defines the use of multirefs.)
> In order to use multirefs, you must use RPC/encoded. Axis2 does not
> support RPC/encoded. Try Axis 1.x.
> </email-snip>
>
> Due to my limited knowledge and experience in this area, and my lack
> of understanding of Axis / Axis2 / SOAP / multiref etc, I simply do
> not know which way to go.
>
> - Can anyone suggest a direction to progress in?
> - Does the above make sense ?
> - Is Axis2 incapable of dealing with the SOAP messages from that server ?
> - Is there any possible workaround in Axis2 ?
> - Are there other things I should check ?
> - Should we give up on Axis2 and try Axis1 instead ?
> - ANY other options / suggestions / advice / workarounds ?
>

Did you use -u option when generating the code?

you can try with this.

change your generated stub to and the following line
   MultirefHelper.processHrefAttributes(_returnEnv); below the return
envelope as given. For each operation.

like this

org.apache.axiom.soap.SOAPEnvelope _returnEnv =
_returnMessageContext.getEnvelope();
                MultirefHelper.processHrefAttributes(_returnEnv);

if this does not work I think you have no option other than using another
stack.

thanks,
Amila.

>
> I can confirm that the Insurance company will not modify their system
> at all as they have a working system and several other ISVs that
> successfully connect, so it us up to us to adapt to their system.
>
> I appreciate that this is a big wack of incoherrent information to
> dump here, but we are really struggling here.
>
> Any and all suggestions / feedback / advice will be greatly appreciated.
>
> Many Thanks,
> -Damian
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>


-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Reply via email to