axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amila Suriarachchi" <amilasuriarach...@gmail.com>
Subject Re: [Axis2] Some questions about Axis2
Date Fri, 20 Apr 2007 04:28:42 GMT
hi,
the List type is not supported by the Axis2. although you have written it
List<Data1> this is not interpret by the Axis2. the possible option it to
use it as an array
e.g.  Data1[]


On 4/19/07, Arnold Maderthaner <arnold.maderthaner@gmail.com> wrote:
>
> Hi !
>
> I have to write some webservices (client and server) and want to use Axis2
> so I wrote some test classes:
>
> Data classes:
> public class Data1
> {
>     List<Data2> array = new ArrayList<Data2>();
>
>     public List<Data2> getArray() {
>         return array;
>     }
>
>     public void setArray(List<Data2> array) {
>         this.array = array;
>     }
>
>
> }
> public class Data2
> {
>     String a,b,c;
>
>     public String getA() {
>         return a;
>     }
>
>     public void setA(String a) {
>         this.a = a;
>     }
>
>     public String getB() {
>         return b;
>     }
>
>     public void setB(String b) {
>         this.b = b;
>     }
>
>     public String getC() {
>         return c;
>     }
>
>     public void setC(String c) {
>         this.c = c;
>     }
> }
>
>
> WebService:
> package com.spirit.axis.webservice;
>
> import java.util.Iterator;
> import java.util.List;
>
> import com.spirit.axis.data.Data1;
> import com.spirit.axis.data.Data2;
>
> public class Webservice
> {
>     public List<Data2> getData(Data1 data)
>     {
>         List<Data2> array = data.getArray();
>         for(Iterator<Data2> it = array.iterator();it.hasNext();)
>         {
>             Data2 data2 = it.next();
>             System.out.println("A:" + data2.getA() + " B:" + data2.getB()
> + " C:" + data2.getC());
>         }
>         return array;
>     }
> }
>
>
> Generated WSDL with java2wsdl:
> <wsdl:definitions xmlns:axis2="http://webservice.axis.spirit.com"
>     xmlns:soap12=" http://schemas.xmlsoap.org/wsdl/soap12/ "
>     xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
>     xmlns:mime=" http://schemas.xmlsoap.org/wsdl/mime/ "
>     xmlns:ns="http://webservice.axis.spirit.com/xsd"
>     xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/ " xmlns:wsdl="
> http://schemas.xmlsoap.org/wsdl/"
>     targetNamespace=" http://webservice.axis.spirit.com ">
>     <wsdl:types>
>         <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema "
>             xmlns:ns0=" http://data.axis.spirit.com/xsd"
> attributeFormDefault="qualified"
>             elementFormDefault="qualified" targetNamespace="http://webservice.axis.spirit.com/xsd
> ">
>             <xs:element name="getData">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element name="data" nillable="true"
> type="ns0:Data1"/>
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>             <xs:element name="getDataResponse">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element name="return" nillable="true"
> type="xs:anyType"/>
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>         </xs:schema>
>         <xs:schema xmlns:xs=" http://www.w3.org/2001/XMLSchema"
>             xmlns:ax21=" http://data.axis.spirit.com/xsd"
> attributeFormDefault="qualified"
>             elementFormDefault="qualified" targetNamespace="
> http://data.axis.spirit.com/xsd">
>             <xs:element name="Data1" type="ax21:Data1"/>
>             <xs:complexType name="Data1">
>                 <xs:sequence>
>                     <xs:element name="array" type="xs:anyType"/>
>                 </xs:sequence>
>             </xs:complexType>
>         </xs:schema>
>     </wsdl:types>
>     <wsdl:message name="getDataMessage">
>         <wsdl:part name="part1" element="ns:getData"/>
>     </wsdl:message>
>     <wsdl:message name="getDataResponseMessage">
>         <wsdl:part name="part1" element="ns:getDataResponse"/>
>     </wsdl:message>
>     <wsdl:portType name="WebservicePortType">
>         <wsdl:operation name="getData">
>             <wsdl:input message="axis2:getDataMessage"/>
>             <wsdl:output message="axis2:getDataResponseMessage"/>
>         </wsdl:operation>
>     </wsdl:portType>
>     <wsdl:binding name="WebserviceSOAP11Binding"
> type="axis2:WebservicePortType">
>         <soap:binding transport=" http://schemas.xmlsoap.org/soap/http "
> style="document"/>
>         <wsdl:operation name="getData">
>             <soap:operation soapAction="urn:getData" style="document"/>
>             <wsdl:input>
>                 <soap:body use="literal" namespace="http://webservice.axis.spirit.com
> "/>
>             </wsdl:input>
>             <wsdl:output>
>                 <soap:body use="literal" namespace="http://webservice.axis.spirit.com
> "/>
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:binding name="WebserviceSOAP12Binding"
> type="axis2:WebservicePortType">
>         <soap12:binding transport=" http://schemas.xmlsoap.org/soap/http"
> style="document"/>
>         <wsdl:operation name="getData">
>             <soap12:operation soapAction="urn:getData" style="document"/>
>             <wsdl:input>
>                 <soap12:body use="literal" namespace="http://webservice.axis.spirit.com
> "/>
>             </wsdl:input>
>             <wsdl:output>
>                 <soap12:body use="literal" namespace="http://webservice.axis.spirit.com
> "/>
>             </wsdl:output>
>         </wsdl:operation>
>     </wsdl:binding>
>     <wsdl:service name="Webservice">
>         <wsdl:port name="WebserviceSOAP11port"
> binding="axis2:WebserviceSOAP11Binding">
>             <soap:address location="http://localhost:8080/axis2/services/Webservice
> "/>
>         </wsdl:port>
>         <wsdl:port name="WebserviceSOAP12port"
> binding="axis2:WebserviceSOAP12Binding">
>             <soap12:address location="http://localhost:8080/axis2/services/Webservice
> "/>
>         </wsdl:port>
>     </wsdl:service>
> </wsdl:definitions>
>
>
> The problem is that axis2 uses anyType for the Array and for the return
> type of my webservice.
> Can I just change it to ax21:Data2 or do I have to modify my sourcecode.
> The wsdl was generate via commandline:
>
> ./java2wsdl.sh -cp . -cn com.spirit.axis.webservice.Webservice -of
> Test.wsdl
>
> anyone can help me or where is the right place to post questions about
> axis2 ?
>
> yours
>
>


-- 
Amila Suriarachchi,
WSO2 Inc.

Mime
View raw message