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>
:
:
:

Reply via email to