We are trying to identify a problem caused in our Web Service that happened when we attempted to upgrade from 1.1RC2 to 1.1Final. The primary symptom is that clients of the webservice fail with an exception like:
<faultstring>org.xml.sax.SAXException: Bad types (int -> class java.lang.String)</faultstring>
when we attempt to call a method without all of its parameters present. Basically it looks like the service has become unable to map input parameters to the corresponding method parameters by name and is attempting to use only the order to do the mapping.
If I look at the WSDL generated for the service for the two versions, I notice that for 1.1Final, the input block for one of the operations looks like this:
<wsdl:operation name="performServiceTest">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="performServiceTestRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://outbound.services.platform.bevocal" use="encoded"/>
</wsdl:input>
<wsdl:output name="performServiceTestResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.bevocal.com/soap/services/" use="encoded"/>
</wsdl:output>
</wsdl:operation>
While for 1.1RC2 it looks like this:
<wsdl:operation name="performServiceTest">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="performServiceTestRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.bevocal.com/soap/services/" use="encoded"/>
</wsdl:input>
<wsdl:output name="performServiceTestResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.bevocal.com/soap/services/" use="encoded"/>
</wsdl:output>
</wsdl:operation>
In other words, for the request input, it decided to mysteriously change the value of the namespace attribute to the reversed package name of the implementing class.
I strongly suspect the namespace conflict is causing the problem. I did try setting the <namespace> tag in the server-config.wsdd file. This got me equivalent WSDL output, but still the same client behavior.
Any advice?
Thanks in advance, Michael