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

Reply via email to