Hi folks,

*Please* spend some time reading this fully. I am tired of trying to solve
this problem for more than a week now.

I have to write a webservice client using Axis 1.4. The webservice is very
old, written using servlets and apache-soap. I do not even have the WSDL for
it. So I wrote WSDL by myself, by analyzing request and response soap
messages. I am using the types and stubs generated for this service by
WSDL2Java tool, in my client application.

 GetServerStatusResponse response = *mappService*.getServerStatus
(getServerStatusRequest);

System.* out*.println(response.getCode());

System.* out*.println(response.getDescription());

System.* out*.println(response.getTrackingCode());

The above code executes normally without any exceptions, but its prints only
null values.

Can anybody tell me what the problem with my WSDL is?

------------

Following is the Response *soap-message* that the webservice sends.

   <?xml version="1.0" encoding="ISO-8859-1"?>

   <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/
">

      <SOAP-ENV:Body>

         <getServerStatus xmlns="urn:sampleURN">

            <serviceStatus>

               <code>0</code>

               <description>getServerStatus OK!</description>

               <trackingCode>AABBMMCOEED</trackingCode>

            </serviceStatus>

            <status>Server xyz alive at Thu Jan 10 11:33:35 CET
2008%BUILDTAG%Build date &amp; time: %DEPLOYDATE%</status>

         </getServerStatus>

      </SOAP-ENV:Body>

   </SOAP-ENV:Envelope>



Here is the *WSDL* definition I've written for above message:

   <xsd:element name="getServerStatusResponse">

     <xsd:complexType>

      <xsd:sequence>

      <xsd:element name="getServerStatusReturn"
type="impl:GetServerStatusResponse"/>

     </xsd:sequence>

    </xsd:complexType>

   </xsd:element>

   <xsd:complexType name="GetServerStatusResponse">

     <xsd:complexContent>

      <xsd:extension base="impl:ServiceStatus">

       <xsd:sequence>

        <xsd:element name="status" type="xsd:string"/>

       </xsd:sequence>

      </xsd:extension>

     </xsd:complexContent>

   </xsd:complexType>



   <xsd:complexType name="ServiceStatus">

     <xsd:sequence>

      <xsd:element name="code" nillable="true" type="xsd:string"/>

      <xsd:element name="description" nillable="true" type="xsd:string"/>

      <xsd:element name="trackingCode" nillable="true" type="xsd:string"/>

     </xsd:sequence>

   </xsd:complexType>



   <wsdl:message name="getServerStatusRequest">

    <wsdl:part element="impl:getServerStatus" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getServerStatusResponse">

    <wsdl:part element="impl:getServerStatusResponse" name="parameters"/>

    </wsdl:message>



   <wsdl:portType name="samplePortName">

    <wsdl:operation name="getServerStatus">

     <wsdl:input message="impl:getServerStatusRequest"
name="getServerStatusRequest"/>

     <wsdl:output message="impl:getServerStatusResponse"
name="getServerStatusResponse"/>

    </wsdl:operation>

   </wsdl:portType>



   <wsdl:binding name="sampleBindingName" type="impl:samplePortName">

     <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http
"/>

     <wsdl:operation name="getServerStatus">

      <wsdlsoap:operation soapAction=""/>

      <wsdl:input name="getServerStatusRequest">

       <wsdlsoap:body use="literal"/>

      </wsdl:input>

      <wsdl:output name="getServerStatusResponse">

       <wsdlsoap:body use="literal"/>

      </wsdl:output>

     </wsdl:operation>

   </wsdl:binding>

------------


If I add the following 4 lines in _initOperationsDesc1() method of the
WebService Stub, then I get the following error .
Error: "Didn't find specified return QName {
http://aaa.ccc.com}getServerStatus!";

param = *new* org.apache.axis.description.ParameterDesc(*new*
javax.xml.namespace.QName( "urn:sampleURN", "serviceStatus"),

 org.apache.axis.description.ParameterDesc.* OUT*, *new*
javax.xml.namespace.QName( "http://bbb.dummycomp.com"; , "ServiceStatus" ),

      com.dummycomp.bbb.webservice.ServiceStatus.*class* , *false*, *false*
);

oper.addParameter(param);

param = *new* org.apache.axis.description.ParameterDesc(*new*
javax.xml.namespace.QName( "urn:sampleURN", "status"),

 org.apache.axis.description.ParameterDesc.* OUT*, *new*
javax.xml.namespace.QName( "http://bbb.dummycomp.com"; , "Status" ),

      java.lang.String.*class* , *false*, *false*);

oper.addParameter(param);

------------------

Kindly suggest the solution as soon as possible, as I'm stuck here for more
than a week now.

Regards,

Rushikesh S. Thakkar

Reply via email to