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" 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

Reply via email to