On Wed, Sep 9, 2009 at 6:48 PM, Pär Malmqvist <par_malmqv...@hotmail.com>wrote:

>  Hello!
>
> I have problem with generating server side code from my wsdl file.
> The wsdl file contains a service, getAtcsByAtcCode, that should return an
> array of Atc-objects.
> But my generated code returns OMElement[] instead.
>
> I use this wsdl file:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://main.sol";
>     xmlns:apachesoap="http://xml.apache.org/xml-soap";
>         xmlns:tns="http://main.sol";
>     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
>     xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>     <wsdl:types>
>         <schema elementFormDefault="qualified" targetNamespace="
> http://main.sol";
>             xmlns="http://www.w3.org/2001/XMLSchema";
>             xmlns:apachesoap="http://xml.apache.org/xml-soap";
>             xmlns:tns="http://main.sol"; xmlns:intf="http://main.sol";
>             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
>
>                         <element name="Atc">
>                 <complexType>
>                     <sequence>
>                         <element name="atcCode" type="xsd:string"/>
>                         <element name="lev" type="xsd:int"/>
>                         <element name="textSv" type="xsd:string"/>
>                         <element name="MAX_LEN_atcCode" type="xsd:string"/>
>                         <element name="MAX_LEN_textSv" type="xsd:string"/>
>                     </sequence>
>                 </complexType>
>             </element>
>
>
>             <element name="getAtcsByAtcCode">
>                 <complexType>
>                     <sequence>
>                         <element name="atcCode" type="xsd:string"/>
>                     </sequence>
>                 </complexType>
>             </element>
>
>             <element name="getAtcsByAtcCodeResponse">
>                 <complexType>
>                     <sequence>
>                         <element maxOccurs="unbounded" minOccurs="0"
> name="return" type="tns:Atc"/>
>

this type should be a complex type. not an element.

thanks,
Amila.

                    </sequence>
>                 </complexType>
>             </element>
>
>             <element name="SolException">
>                 <complexType>
>                     <sequence>
>                         <element name="errorCode" type="xsd:int"/>
>                         <element name="errorMsg" type="xsd:string"/>
>                     </sequence>
>                 </complexType>
>             </element>
>
>         </schema>
>     </wsdl:types>
>
>     <wsdl:message name="getAtcsByAtcCodeRequest">
>         <wsdl:part element="tns:getAtcsByAtcCode" name="parameters"/>
>     </wsdl:message>
>
>     <wsdl:message name="getAtcsByAtcCodeResponse">
>         <wsdl:part element="tns:getAtcsByAtcCodeResponse" name="return"/>
>     </wsdl:message>
>
>     <wsdl:message name="SolExceptionMessage">
>         <wsdl:part element="tns:SolException" name="fault"/>
>     </wsdl:message>
>
>     <wsdl:portType name="SolDB2">
>         <wsdl:operation name="getAtcsByAtcCode">
>             <wsdl:input message="tns:getAtcsByAtcCodeRequest"
> name="getAtcsByAtcCodeRequest"/>
>             <wsdl:output message="tns:getAtcsByAtcCodeResponse"
> name="getAtcsByAtcCodeResponse"/>
>             <wsdl:fault message="tns:SolExceptionMessage"
> name="SolExceptionFault"/>
>         </wsdl:operation>
>     </wsdl:portType>
>
>     <wsdl:binding name="SolDB2SoapBinding" type="tns:SolDB2">
>         <wsdlsoap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"/>
>         <wsdl:operation name="getAtcsByAtcCode">
>             <wsdlsoap:operation soapAction=""/>
>             <wsdl:input name="getAtcsByAtcCodeRequest">
>                 <wsdlsoap:body use="literal"/>
>             </wsdl:input>
>             <wsdl:output name="getAtcsByAtcCodeResponse">
>                 <wsdlsoap:body use="literal"/>
>             </wsdl:output>
>             <wsdl:fault name="SolExceptionFault">
>                 <wsdlsoap:fault name="SolExceptionFault" use="literal"/>
>             </wsdl:fault>
>         </wsdl:operation>
>     </wsdl:binding>
>
>     <wsdl:service name="SolDB2">
>         <wsdl:port binding="tns:SolDB2SoapBinding" name="SolDB2">
>             <wsdlsoap:address location="
> http://localhost:8080/axis2/services/SolDB2"/>
>         </wsdl:port>
>     </wsdl:service>
>
> </wsdl:definitions>
>
>
>
> I generate my service with the following ant task:
>
> (lib directory contains all Axis2 jars)
>
>
> <target name="gen.sol.src.service">
>
>             <delete dir="soltarget"/>
>             <mkdir dir="soltarget"/>
>             <mkdir dir="soltarget/classes"/>
>
>             <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
>                 <arg line="-uri SolDB2.wsdl"/>
>                 <arg line="-d adb"/>
>                 <arg line="-ss"/>
>                 <arg line="-sd"/>
>                 <arg line="-o soltarget"/>
>                 <classpath>
>                     <fileset dir=".\lib">
>                           <include name="*.jar"/>
>                     </fileset>
>                 </classpath>
>             </java>
> </target>
>
>
>
> When I check the generated file GetAtcsByAtcCodeResponse.java I see that
> the object contains an
> array of org.apache.axiom.om.OMElement[] instead of sol.main.Atc[].
>
>
> Is there something wrong with my wsdl file?
> Or is this the way to do when returning array of objects at the service
> side?
>
> Regards
>
> Pär Malmqvist
>
>
>
> ------------------------------
> Share your memories online with anyone you want anyone you 
> want.<http://www.microsoft.com/middleeast/windows/windowslive/products/photos-share.aspx?tab=1>
>



-- 
Amila Suriarachchi
WSO2 Inc.
blog: http://amilachinthaka.blogspot.com/

Reply via email to