axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "PKDor" <pk...@arrakis.es>
Subject Interoperatibility problems (Axis2 Client & .Net Server)
Date Tue, 11 Sep 2007 07:53:15 GMT


Hi all!,

We have some Web Services developed with asp.net 2.0. They work fine, and we haven't had problems
with interoperatibility between platforms until now.

A few days ago, a customer started to use our platform with an Axis2 client. We haven't experience
giving support with Axis2. Until now, all the access to our platform had been with clients
developed in .Net or Java with the XFire library. Both .Net and XFire use the SOAP 1.1 by
default, although (at least in .Net) you can force the use of 1.2 version without problems.
Axis2 use by default SOAP 1.2. 

All seemed to work fine until an exception was raised. In that moment, the Axis2 client launched
an error: "org.apache.axiom.om.impl.exception.OMBuilderException: detail unsupported element
in SOAPFault element"

That is, it looks like if the Axis2 generated classes don't know how to read the "detail"
element in the SOAPFault XML code generated by .Net. The "detail" element is part of the SOAPFault
protocol, son we don't understand why is failing. With a .Net client all work fine. With a
XFire too (in both cases, the tests have been done with SOAP 1.1 and SOAP 1.2). With Axis2,
it only works fine if we force the client to use the SOAP 1.1 Protocol  (options.setSoapVersionURI(Constants.URI_SOAP11_ENV)).

Has anyone had a similar problem?

We have another problem, this time with nulls. In .Net or XFire, if you don't send a data
(for example, an integer field in a complex data type), is received at the server as "null"
(element is marked as nilable = true in the WSDL). However, we are receiving a 0, and it causes
a lot of problems. We have "resolved" the problem like this:

Instead of this (is pseudocode):

Client client = new Client();
client.name = "Jhon Doe";
client.Insert();

With Axis2, our clients have to do this  (is pseudocode):

Client client = new Client();
client.code = Integer.MIN_VALUE;
client.name = "Jhon Doe";
client.Insert();

What is very extrange, and we don't understand the reason. Is there any way to change this
behaviour?

Thanks in advance!
Mime
View raw message