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!

Reply via email to