Anand, I face exactly the same issues. My Axis service is rpc/encoded and returns arrays of complex objects/strings etc. and uses enums etc. My client is gSOAP and it fails to generate correct stubs and compile it for Axis1.2. Unfortunately I can not switch to doc/lit but I need to migrate to Axis1.2 in order to create new WS-I compliant web services. I am trying to avoid using Axis1.1 as well as Axis1.2 on the server, and so I am currently using the workaround to get around this problem.
Any idea how to resolve this? Thanks --shashi -----Original Message----- From: Anand Natrajan [mailto:[EMAIL PROTECTED] Sent: Friday, August 13, 2004 8:51 AM To: [EMAIL PROTECTED] Subject: Re: Serialization error with Axis1.2 rpc/encoded service and gSOAP Shashi, I am very familiar with that problem (I entered the bug report to which you allude in your email). Yes, this is a serious interoperability problem. However, I now agree with Davanum Srinivas that Axis 1.2 is actually doing the correct thing when it assigns the soapenc namespace to string. Apparently Axis 1.1 had a bug that made it assign the xsd namespace. As I mention in my report, I face this problem when my Axis service (rpc/encoded version) returns an array of string and I try to consume the response in a VB .NET client. If I change any one thing - use doc/lit instead of rpc/enc, or use a non-.NET client, or use Axis 1.1, or return a single string instead of an array - everything works. After reading the SOAP specs, I'm becoming convinced that it is actually .NET that is adhering to the wrong standard. I've entered a report in MDSN Product Feedback Centre as well, with no response. I seriously hope this issue is addressed, but currently, I am being forced to look at alternative ways of returning the problematic data. Anand On Thu, 12 Aug 2004, Shashi Rai wrote: : Hi All, : : I have been using Axis1.1 on server and gSOAP on the client for long time : and everything has been working fine. I am trying to migrate to Axis1.2 and : picked up bits on Aug5. When I tried to generate header and stubs and : compile the client project, it failed. After further investigation, I find : that in Axis1.2, somehow string are soapenc:string rather than xsd:string. I : usually use wsdd file to deploy webservice in Axis. If I use following : typeMapping, the WSDL contains xsd:string and everything works fine. : Otherwise it has soapenc:string and client code fails. : : <typeMapping : qname="tns:string" : type="java:java.lang.String" : serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" : deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" : encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" : /> : : While including the above solves the problem with soapenc, it introduces a : different problem. When my webservice class is invoked by Axis, the : parameters of type string in the method are empty string. : : The current workaround for me is generate WSDL by including above : typemapping so that gSOAP client code is happy. and then remove the type : mapping on the server server. : : Question: is this a bug in Axis1.2 and is it fixed? I noticed a similar : issue at: : http://issues.apache.org/jira/browse/AXIS-1467 : : : Thanks : : --shashi : : : Here it the partial wsdd I use: : : <deployment xmlns="http://xml.apache.org/axis/wsdd/" : xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" : xmlns:tns="http://www.w3.org/2001/XMLSchema" : xmlns:ns1="http://edc.adobe.com/edcwebservice" : xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" : > : <service name="urn:EDCLicenseService" provider="java:RPC" style="rpc" : use="encoded" > : <parameter name="className" : value="com.adobe.edc.server.webservices.EDCLicenseService"/> : <parameter name="allowedMethods" value="getServerPreferences "/> : <operation name="getServerPreferences" qname="ns1:getServerPreferences" : returnQName="returnServerPreferences" : returnType="ns1:ServerPreference" > : <fault name="EDCFault" qname="fns:fault" : xmlns:fns="http://edc.adobe.com/EDCFaults" : : class="com.adobe.edc.server.errors.exception.EDCWebserviceException" : type="ns1:EDCFault" /> : </operation> : <typeMapping : qname="ns1:EDCFault" : : type="java:com.adobe.edc.server.errors.exception.EDCWebserviceException" : serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" : deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" : encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" : /> : <typeMapping : qname="ns1:AuthScheme" : languageSpecificType="java:com.adobe.edc.server.soap.AuthSchemeDTO" : serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" : deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" : encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" : /> : <typeMapping : qname="ns1:AuthSchemes" : languageSpecificType="java:com.adobe.edc.server.soap.AuthSchemeDTO[]" : serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" : deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" : encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" : /> : <!-- : <typeMapping : qname="tns:string" : type="java:java.lang.String" : serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" : deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" : encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" : /> : --> : </service> : </deployment> : : :