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/"
/>
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:
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"
>
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>
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/"
/>
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/"
/>
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/"
/>
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/"
/>
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>
TestService_xsd_string.wsdl
Description: Binary data
TestService_soapenc_string.wsdl
Description: Binary data