Hi, the standard practice for a web service client is to obtain the WSDL from
the service provider and generate the stub from it. Editing the WSDL on the
client side is problematic and causes errors.



thusa gihan wrote:
> 
> Hi all,
> 
> I'm writing a client with Axis 1.4 to a web service, but the generated
> SOAP
> request is not matching with the one expected by the web service.
> 
> Could you please help me to edit the WSDL file (saved into my local disk
> from the server) so that I can generate the stubs to build the expected
> SOAP
> requests. I have posted the WSDL, currently generated SOAP request and the
> expected SOAP request below.
> 
> If WSDL editing is not the way to get this done, please suggest me some
> other way. I'm really stuck here.
> 
> Thanks in advance.
> 
> Thusa.
> 
> 
> 
> This is the avaialble WSDL file.
> --------------------------------------------------------------
>  <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:typens="urn:Company" xmlns:xsd="
> http://www.w3.org/2001/XMLSchema"; xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soapenc="
> http://schemas.xmlsoap.org/soap/encoding/"; xmlns:wsdl="
> http://schemas.xmlsoap.org/wsdl/"; xmlns="http://schemas.xmlsoap.org/wsdl/";
> name="Company" targetNamespace="urn:Company">
>   <message name="call">
>     <part name="sessionId" type="xsd:string"/>
>     <part name="resourcePath" type="xsd:string"/>
>     <part name="args" type="xsd:anyType"/>
>   </message>
>   <message name="callResponse">
>     <part name="callReturn" type="xsd:anyType"/>
>   </message>
>   <message name="login">
>     <part name="username" type="xsd:string"/>
>     <part name="apiKey" type="xsd:string"/>
>   </message>
>   <message name="loginResponse">
>     <part name="loginReturn" type="xsd:string"/>
>   </message>
> 
>   <portType name="Comp_Api_Model_Server_HandlerPortType">
>     <operation name="call">
>       <documentation>Call api functionality</documentation>
>       <input message="typens:call"/>
>       <output message="typens:callResponse"/>
>     </operation>
>     <operation name="login">
>       <documentation>Login user and retrive session id</documentation>
>       <input message="typens:login"/>
>       <output message="typens:loginResponse"/>
>     </operation>
>   </portType>
> 
>   <binding name="Comp_Api_Model_Server_HandlerBinding"
> type="typens:Comp_Api_Model_Server_HandlerPortType">
>     <soap:binding style="rpc" transport="
> http://schemas.xmlsoap.org/soap/http"/<http://schemas.xmlsoap.org/soap/http%22/>
>>
>     <operation name="call">
>       <soap:operation
> soapAction="urn:Comp_Api_Model_Server_HandlerAction"/>
>       <input>
>         <soap:body namespace="urn:Company" use="encoded" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/>
>>
>       </input>
>       <output>
>         <soap:body namespace="urn:Company" use="encoded" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/>
>>
>       </output>
>     </operation>
>     <operation name="login">
>       <soap:operation
> soapAction="urn:Comp_Api_Model_Server_HandlerAction"/>
>       <input>
>         <soap:body namespace="urn:Company" use="encoded" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/>
>>
>       </input>
>       <output>
>         <soap:body namespace="urn:Company" use="encoded" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/>
>>
>       </output>
>     </operation>
>   </binding>
>   <service name="CompanyService">
>     <port name="Comp_Api_Model_Server_HandlerPort"
> binding="typens:Comp_Api_Model_Server_HandlerBinding">
>       <soap:address location="
> http://localhost/Company/index.php/api/index/index/"/<http://localhost/Company/index.php/api/index/index/%22/>
>>
>     </port>
>   </service>
> </definitions>
>  --------------------------------------------------------------
> 
> Currently generated SOAP request is as follows.
>  --------------------------------------------------------------
>  <?xml version="1.0" encoding="UTF-8"?>
>    <soapenv:Envelope xmlns:soapenv="
> http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="
> http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";>
>       <soapenv:Body>
>          <ns1:call soapenv:encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns1="urn:Company">
>             <sessionId
> xsi:type="xsd:string">1vp029hcubiiven8cr1s21nke2</sessionId>
>             <resourcePath
> xsi:type="xsd:string">customer.create</resourcePath>
>             <args soapenc:arrayType="xsd:anyType[1]"
> xsi:type="soapenc:Array" xmlns:soapenc="
> http://schemas.xmlsoap.org/soap/encoding/";>
>                <args href="#id0"/>
>             </args>
>          </ns1:call>
>          <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns2:Map"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns2="
> http://xml.apache.org/xml-soap";>
>             <item>
>                <key xsi:type="soapenc:string">email</key>
>                <value xsi:type="soapenc:string">[EMAIL PROTECTED]</value>
>             </item>
>             <item>
>                <key xsi:type="soapenc:string">lastname</key>
>                <value xsi:type="soapenc:string">myLastName</value>
>             </item>
>             <item>
>                <key xsi:type="soapenc:string">firstname</key>
>                <value xsi:type="soapenc:string">MyFirstName</value>
>             </item>
>          </multiRef>
>       </soapenv:Body>
>    </soapenv:Envelope>
>  --------------------------------------------------------------
> 
> But the server expects a SOAP request as follows. ( I found this SOAP
> request from one of their sample clients done with PHP).
>  --------------------------------------------------------------
>  <?xml version="1.0" encoding="UTF-8"?>
>       <SOAP-ENV:Envelope xmlns:SOAP-ENV="
> http://schemas.xmlsoap.org/soap/envelope/"; xmlns:ns1="urn:Company"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"; xmlns:ns2="
> http://xml.apache.org/xml-soap"; xmlns:SOAP-ENC="
> http://schemas.xmlsoap.org/soap/encoding/"; SOAP-ENV:encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/";>
>          <SOAP-ENV:Body>
>             <ns1:call>
>                <sessionId
> xsi:type="xsd:string">mj3kj5rr2df0b1fq5kmputmr54</sessionId>
>                <resourcePath
> xsi:type="xsd:string">customer.create</resourcePath>
>                <args SOAP-ENC:arrayType="ns2:Map[1]"
> xsi:type="SOAP-ENC:Array">
>                   <item xsi:type="ns2:Map">
>                      <item>
>                         <key xsi:type="xsd:string">firstname</key>
>                         <value xsi:type="xsd:string">myFirstName</value>
>                      </item>
>                      <item>
>                         <key xsi:type="xsd:string">lastname</key>
>                         <value xsi:type="xsd:string">myLastName</value>
>                      </item>
>                      <item>
>                         <key xsi:type="xsd:string">email</key>
>                         <value xsi:type="xsd:string">[EMAIL PROTECTED]
> </value>
>                      </item>
>                   </item>
>                </args>
>             </ns1:call>
>          </SOAP-ENV:Body>
>       </SOAP-ENV:Envelope>
>  --------------------------------------------------------------
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Altering-WSDL-to-match-the-expected-SOAP-tp19893021p19909571.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to