You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Tom Schmidt (JIRA)" <ax...@ws.apache.org> on 2004/12/15 01:21:59 UTC

[jira] Commented: (AXIS-1467) Serialisation errors in .NET client with Axis 1.2 rpc/enc service

     [ http://nagoya.apache.org/jira/browse/AXIS-1467?page=comments#action_56684 ]
     
Tom Schmidt commented on AXIS-1467:
-----------------------------------

I just tried out the nightly downloads (12/14) and it still seems to have the compatibility problem with .Net.  .Net does not like the arrayType="soapenc:string[13]" that is returned by Axis 1.2.  Everything works great with Axis 1.1 it returns arrayType="xsd:string[13]".

> Serialisation errors in .NET client with Axis 1.2 rpc/enc service
> -----------------------------------------------------------------
>
>          Key: AXIS-1467
>          URL: http://nagoya.apache.org/jira/browse/AXIS-1467
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2 Beta
>  Environment: VB .NET client on Win2000, Axis 1.2beta2 server inside JBoss/Jetty on Solaris.
>     Reporter: Anand Natrajan
>      Fix For: 1.2
>  Attachments: server-config.wsdd
>
> 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()

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira