You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Ben Reif <Be...@cgi-ams.com> on 2004/07/23 20:32:47 UTC

Incorrect SOAP version defaulting?

I'm using Axis 1.2 alpha on the server. I'm having trouble building a
.Net client because the generated WSDL from Axis (using ?wsdl) maps all
of the primitive types to the SOAP 1.2
"http://www.w3.org/2003/05/soap-encoding
<http://www.w3.org/2003/05/soap-encoding> " namespace, which .Net
doesn't like because it only supports SOAP 1.1. According to the
documentation Axis defaults to use SOAP 1.1, however it looks like in
DefaultTypeMappingImpl.myRegister(QName xmlType, Class javaType,
SerializerFactory sf, DeserializerFactory df) you loop over the
Constants.URIS_SOAP_ENC values and then register the class with both
namespace versions. 
 
for (int i=0; i < Constants.URIS_SOAP_ENC.length; i++) {

    QName qName = new QName(Constants.URIS_SOAP_ENC[i],
xmlType.getLocalPart());

    super.internalRegister(javaType, qName, sf, df);

}

In super.internalRegister(), I think the class2Pair and qName2Pair
entries are always being set to the 1.2 namespace value since it's
second on the list. Is there something I'm missing or need to configure?
I'm just wondering why that namespace is even showing up in the WSDL
since it should be defaulting everything to version 1.1.

Thanks a lot,

Ben