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"/>
                    </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.
http://www.microsoft.com/middleeast/windows/windowslive/products/photos-share.aspx?tab=1

Reply via email to