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

  • RE: Axis1.3 Vs Axis2 - code generation using WSDL2Java ... Raghu Upadhyayula

Reply via email to