Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-1467

Serialisation errors in .NET client with Axis 1.2 rpc/enc service

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2 Beta
    • 1.2
    • None
    • VB .NET client on Win2000, Axis 1.2beta2 server inside JBoss/Jetty on Solaris.

    Description

      I'm seeing some client-side serialisation errors when I try to access
      my Axis 1.2 rpc/encoded service using a VB .NET client. This same
      combination worked in Axis 1.1, but fails with Axis 1.2. I have used
      the Axis 1.2 beta from June 14th as well as July 15th separately.

      Below is a complete trace of what I did and what the error is.
      I've shown

      • the signature of the Java service
      • the java2wsdl Ant task used to generate the WSDL
      • the wsdl2java Ant task used to generate deploy.wsdd
      • the VB .NET client
      • the SOAP request generated by the .NET client
      • the SOAP response when the service was deployed under Axis 1.1
      • the SOAP response when the service was deployed under Axis 1.2
        The items shown as ellipses have been elided because they're simply
        values irrelevant to the operation.

      The only difference between the two scenarios (1.1 vs. 1.2) is that
      I changed the Axis libraries (axis*.jar, commons*.jar, saaj.jar,
      wsdl4j.jar, jaxrpc.jar) and re-ran the procedure right from compiling
      the service and running java2wsdl and so on.

      What has changed between Axis 1.1 and 1.2 in this respect?

      <!-- Java signature of service -->
      import com.abc.api.common.MyPrincipal;
      public class MyAPIRpcEnc
      {
      public String[] whoami(MyPrincipal principal)
      throws RemoteException

      { ... }

      }

      <!-- java2wsdl task -->
      <axis-java2wsdl
      classname="com.abc.ws.server.MyAPIRpcEnc"
      style="rpc"
      use="encoded"
      namespace="urn:${apiName}"
      location="http://LOCAL_HOST:8080/axis/services/MyAPIRpcEnc"
      output="${basedir}/${wsdl.build.dir}/MyAPIRpcEnc.wsdl">
      <classpath refid="classpath"/>
      <mapping package="com.abc.api.common"
      namespace="urn:MyAPICommon"/>
      </axis-java2wsdl>

      <!-- wsdl2java task -->
      <axis-wsdl2java
      output="${outDir}"
      url="${basedir}/${wsdl.build.dir}/MyAPIRpcEnc.wsdl"
      serverside="true">
      <mapping namespace="urn:MyAPIRpcEnc"
      package="com.abc.ws.stubs"/>
      <mapping namespace="urn:MyAPICommon"
      package="com.abc.api.common"/>
      </axis-wsdl2java>
      <!-- Paste deploy.wsdd into server-config.wsdd -->

      <!-- VB .NET client call -->
      ...
      Private Sub actualTests()
      Dim principal As New MyAPIRpcEnc.MyPrincipal
      principal.name = "Administrator"
      principal.password = "Administrator"
      principal.authService = "DefaultAuthService"
      principal.authServiceType = "Grid"
      principal.domain = "mydomain.abc.com"
      Dim asdn As New MyAPIRpcEnc.MyAPIRpcEncService
      asdn.whoami(principal)
      End Sub
      ...

      <!-- VB .NET request -->
      <?xml version="1.0" encoding="utf-8"?>
      <soap:Envelope
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:tns="urn:MyAPIRpcEnc"
      xmlns:types="urn:MyAPIRpcEnc/encodedTypes"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <tns:whoami>
      <principal href="#id1" />
      </tns:whoami>
      <q1:MyPrincipal id="id1"
      xsi:type="q1:MyPrincipal"
      xmlns:q1="urn:MyAPICommon">
      <authService xsi:type="xsd:string">DefaultAuthService</authService>
      <authServiceType xsi:type="xsd:string">Grid</authServiceType>
      <domain xsi:type="xsd:string">mydomain.abc.com</domain>
      <name xsi:type="xsd:string">Administrator</name>
      <password xsi:type="xsd:string">Administrator</password>
      </q1:MyPrincipal>
      </soap:Body>
      </soap:Envelope>

      <!-- Axis 1.1 response -->
      <?xml version="1.0" encoding="UTF-8"?>
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
      <ns1:whoamiResponse
      soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:ns1="urn:MyAPIRpcEnc">
      <whoamiReturn soapenc:arrayType="xsd:string[9]"
      xsi:type="soapenc:Array"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      <item>...</item>
      </whoamiReturn>
      </ns1:whoamiResponse>
      </soapenv:Body>
      </soapenv:Envelope>

      <!-- Axis 1.2 beta response (June 14th and July 15th releases) -->
      <?xml version="1.0" encoding="utf-8"?>
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
      <ns1:whoamiResponse
      soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:ns1="urn:MyAPIRpcEnc">
      <whoamiReturn soapenc:arrayType="soapenc:string[9]"
      xsi:type="ns1:ArrayOf_xsd_string"
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      <item xsi:type="soapenc:string">...</item>
      </whoamiReturn>
      </ns1:whoamiResponse>
      </soapenv:Body>
      </soapenv:Envelope>

      <!-- VB .NET error -->
      Unhandled Exception: System.InvalidOperationException: There is an error in XML
      document (1, 308). ---> System.InvalidOperationException: The specified type was
      not recognized: name='string', namespace='http://schemas.xmlsoap.org/soap/encoding/', at <whoamiReturn xmlns=''>.
      at System.Xml.Serialization.XmlSerializationReader.GetPrimitiveType(XmlQualifiedName typeName, Boolean throwOnUnknown)
      at System.Xml.Serialization.XmlSerializationReader.ReadArray(String typeName, String typeNs)
      at System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, Boolean elementCanBeType, String& fixupReference)
      at System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, String& fixupReference)
      at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read70_whoamiResponse()
      — End of inner exception stack trace —
      at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
      at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader)
      at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
      at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
      at DotNetWSAPITest.MyAPIRpcEnc.MyAPIRpcEncService.whoami(MyPrincipal principal)
      at DotNetWSAPITest.DotNetWSAPITest.actualTests(MyPrincipal principal)
      at DotNetWSAPITest.DotNetWSAPITest.testMyWSAPI()
      at DotNetWSAPITest.DotNetWSAPITest.Main()

      Attachments

        1. server-config.wsdd
          191 kB
          Anand Natrajan

        Activity

          People

            Unassigned Unassigned
            anand@virginia.edu Anand Natrajan
            Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: