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 ?

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]

Reply via email to