G
Georg Gerber
Hello,
I have running an Axis1-Webservice, which is used by some clients. Now I
want migrate to Axis2. The clients shall run further without any
modifications.
Is this generaly possible?
I made some experiments and got the following problem:
The old Axis 1 - WSDL contains the following lines. (here the code without
types, namespaces, etc.)
<types>
<schema>
<complexType name="MyParam">
<sequence>
<element name="paramDetail_1" />
<element name="paramDetail_2" />
</sequence>
</complexType>
<complexType name="MyReturn">
<sequence>
<element name="returnDetail_1" />
<element name="returnDetail_2" />
<element name="request" type="MyParam" />
</sequence>
</complexType>
<element name="MyFunctionParam" type="MyParam" />
<element name="MyFunctionReturn" type="MyReturn" />
</schema>
</types>
<message name="MyFunctionParamMsg">
<part element="MyFunctionParam" name="MyFunctionParam" />
</message>
<message name="MyFunctionReturnMsg">
<part element="MyFunctionReturn" name="MyFunctionReturn" />
</message>
With Axis 1 the following code for the "main"-function is gerenated by
java2wsdl:
MyParam myFunction(MyParam param0) {...}
With Axis 2 the following code is generated:
MyFunctionReturn myFunction(MyFunctionParam param0) {...}
With Axis 1 the name of the complexType> is used, with Axis 2the name of the
<element>.
Now I modified the WSDL for Axis 2:
<types>
<schema>
<element name="MyParam">
<complexType>
<sequence>
<element name="paramDetail_1" />
<element name="paramDetail_2" />
</sequence>
</complexType>
</element>
<element name="MyReturn">
<complexType>
<sequence>
<element name="returnDetail_1" />
<element name="returnDetail_2" />
<element name="request" type="MyParam" />
</sequence>
</complexType>
</element>
<element name="MyFunctionParam" type="MyParam" />
<element name="MyFunctionReturn" type="MyReturn" />
</schema>
</types>
<message name="MyFunctionParamMsg">
<part element="MyParam" name="parameters" />
</message>
<message name="MyFunctionReturnMsg">
<part element="MyReturn" name="returnType" />
</message>
without the line
<element name="request" type="MyParam" />
wsdl2java creates the equal signature for the "main"-function like Axis1.
But when the wsdl contains this line above, there are exceptions.
The problem is, that at Axis 1 MyParam is a <complexType>
and at Axis 2 an <element>
Has somebody any idea, what I can do?
Georg
I have running an Axis1-Webservice, which is used by some clients. Now I
want migrate to Axis2. The clients shall run further without any
modifications.
Is this generaly possible?
I made some experiments and got the following problem:
The old Axis 1 - WSDL contains the following lines. (here the code without
types, namespaces, etc.)
<types>
<schema>
<complexType name="MyParam">
<sequence>
<element name="paramDetail_1" />
<element name="paramDetail_2" />
</sequence>
</complexType>
<complexType name="MyReturn">
<sequence>
<element name="returnDetail_1" />
<element name="returnDetail_2" />
<element name="request" type="MyParam" />
</sequence>
</complexType>
<element name="MyFunctionParam" type="MyParam" />
<element name="MyFunctionReturn" type="MyReturn" />
</schema>
</types>
<message name="MyFunctionParamMsg">
<part element="MyFunctionParam" name="MyFunctionParam" />
</message>
<message name="MyFunctionReturnMsg">
<part element="MyFunctionReturn" name="MyFunctionReturn" />
</message>
With Axis 1 the following code for the "main"-function is gerenated by
java2wsdl:
MyParam myFunction(MyParam param0) {...}
With Axis 2 the following code is generated:
MyFunctionReturn myFunction(MyFunctionParam param0) {...}
With Axis 1 the name of the complexType> is used, with Axis 2the name of the
<element>.
Now I modified the WSDL for Axis 2:
<types>
<schema>
<element name="MyParam">
<complexType>
<sequence>
<element name="paramDetail_1" />
<element name="paramDetail_2" />
</sequence>
</complexType>
</element>
<element name="MyReturn">
<complexType>
<sequence>
<element name="returnDetail_1" />
<element name="returnDetail_2" />
<element name="request" type="MyParam" />
</sequence>
</complexType>
</element>
<element name="MyFunctionParam" type="MyParam" />
<element name="MyFunctionReturn" type="MyReturn" />
</schema>
</types>
<message name="MyFunctionParamMsg">
<part element="MyParam" name="parameters" />
</message>
<message name="MyFunctionReturnMsg">
<part element="MyReturn" name="returnType" />
</message>
without the line
<element name="request" type="MyParam" />
wsdl2java creates the equal signature for the "main"-function like Axis1.
But when the wsdl contains this line above, there are exceptions.
The problem is, that at Axis 1 MyParam is a <complexType>
and at Axis 2 an <element>
Has somebody any idea, what I can do?
Georg