axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raghu Upadhyayula" <rupadhyay...@responsys.com>
Subject Axis1.3 Vs Axis2 - code generation using WSDL2Java if method has xsd:anyType as a parameter type.
Date Fri, 15 Jun 2007 17:43:35 GMT
Hi,

 

I'm having an issue with Axis2 Vs Axis1.3 code generation using
WSDL2Java when using HashMap as a parameter to one of my methods.

 

I've explained in detail what the problem I'm getting.  Is there a
solution to this issue.  I'm will be using Axis2 for developing my
services, I need some help in how to use OMElement to pass objects to
the service method etc.

 

I have a Java Interface say which has a method that takes in HashMap as
a parameter.

 

import java.util.HashMap;

 

public interface TestWS {

    public String method1 (HashMap hashMap);

}

 

Axis 1.3

 

When I generated WSDL from this interface using Java2WSDL, it created
the wsdl as follows

    <wsdl:types>

        <schema elementFormDefault="qualified"
targetNamespace="http://DefaultNamespace"
xmlns="http://www.w3.org/2001/XMLSchema">

            <import namespace="http://xml.apache.org/xml-soap"/>

            <element name="method1">

                <complexType>

                    <sequence>

                        <element name="in0" type="apachesoap:Map"/>

                    </sequence>

                </complexType>

            </element>

            <element name="method1Response">

                <complexType>

                    <sequence>

                        <element name="method1Return"
type="xsd:string"/>

                    </sequence>

                </complexType>

            </element>

        </schema>

        <schema elementFormDefault="qualified"
targetNamespace="http://xml.apache.org/xml-soap"
xmlns="http://www.w3.org/2001/XMLSchema">

            <complexType name="mapItem">

                <sequence>

                    <element name="key" nillable="true"
type="xsd:anyType"/>

                    <element name="value" nillable="true"
type="xsd:anyType"/>

                </sequence>

            </complexType>

            <complexType name="Map">

                <sequence>

                    <element maxOccurs="unbounded" minOccurs="0"
name="item" type="apachesoap:mapItem"/>

                </sequence>

            </complexType>

        </schema>

    </wsdl:types>

 

And when I created the server side & client side code using this wsdl
with WSDL2Java, my Java (stub & skeleton) classes were created with the
java.util.HashMap as a parameter to method 1.

 

C# Client using Axis1.3 wsdl

 

When I generated the C# client using this WSDL file, it created a
mapItem array as a parameter to the method1 where mapItem is a class
having key & value as objects.

 

Axis2 (1.2)

 

When I generated WSDL from this interface using Java2WSDL, it created
the wsdl as follows

 

    <wsdl:types>

        <xs:schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://ws.apache.org/axis2/xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

            <xs:element name="method1">

                <xs:complexType>

                    <xs:sequence>

                        <xs:element name="param0" nillable="true"
type="xs:anyType"/>

                    </xs:sequence>

                </xs:complexType>

            </xs:element>

            <xs:element name="method1Response">

                <xs:complexType>

                    <xs:sequence>

                        <xs:element name="return" nillable="true"
type="xs:string"/>

                    </xs:sequence>

                </xs:complexType>

            </xs:element>

        </xs:schema>

    </wsdl:types>

 

And when I created the server side & client side code using this wsdl
with WSDL2Java, my Java (stub & skeleton) classes were created with
OMElement as a parameter to method 1.

 

C# Client using Axis2 (1.2) wsdl

 

When I generated the C# client using this WSDL file, it created a
method1 object as a parameter to the method1 where method1 is a class
having one object as its member.

 

 

Thanks

Raghu


Mime
View raw message