Solved.......

Even though the SearchIdType did not exist as an object after running WSDL2Java using Axis 1.2, there still was a typeMapping entry that got created (in the deploy.wsdd file) which I failed to add to my server-config.wsdd file.  Once I did that all was well.

Developer error.

Thanks - Peter

Peter Len wrote:
Hello,

I am trying to run some tests to upgrade from Axis 1.1 to Axis 1.2 and have run into a problem.  My WSDL has the following:

<xs:complexType name="OntSearchResponseType">
    <xs:sequence>
            <xs:element name="id" type="ifis:SearchIdType"/>
            <xs:element name="result" type="ifis:OntResultType"/>
    </xs:sequence>
</xs:complexType>

<xs:simpleType name="SearchIdType">
    <xs:annotation>
        <xs:documentation>Per provider unique search id.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>

When I run WSDL2Java under 1.1 a SearchIdType object is created but under Axis 1.2 it is not.

 In my test I have my client still running under Axis 1.1 with the Axis 1.1 WSDL2Java generated objects (can't convert the client just yet because other modules are out of my control).  I have two servers running.  One is running the Axis 1.1 stuff and the other server is running Axis 1.2 with the Axis 1.2 WSDL2Java generated objects.

When I make a web service call from my client to the Axis 1.1 server the SOAP body being returned is:

<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-30999846"> 
      <searchResponse xmlns="urn:ifis-wsdl">  
         <id xmlns="">1</id>  
         <result xmlns="" xmlns:ns1="http://www.dod.mil/ifis/1.0/ifis#" ns1:isStillProcessing="false" ns1:timestamp="2005-06-22T12:45:52.020Z"/>   
      </searchResponse>
   </soapenv:Body>

When I make a web service call from my client to the Axis 1.2 server the SOAP body being returned is:

<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-1132857">
         <searchResponse xmlns="urn:ifis-wsdl">
            <id xmlns="" xsi:type="xsd:positiveInteger">1</id>
            <result xmlns="" xmlns:ns1="http://www.dod.mil/ifis/1.0/ifis#" ns1:isStillProcessing="false" ns1:timestamp="2005-06-22T12:54:28.191Z"/>
         </searchResponse>
      </soapenv:Body>

You can see that the Axis 1.2 server returned a slightly different version of the "id" element.  When hitting the Axis 1.2 server, my client ends up throwing an "IllegalArgumentException: argument type mismatch" error.  My thought is that when Axis (1.1) deserializes the SOAP Body on my client, it is having problems with this new version of the "id" element. 

Can anyone verify that this is what is causing the error?

Thanks - Peter







Reply via email to