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/
