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> --------------------------------------------------------------
