Hi Martin,

With your changes I tried using Axis 1.4, now the client fails saying "
faultString: Procedure 'username' not present".

Not sure whether I applied your changes correctly. I have attached the
current WSDL below.

Thanks,
Thusa.

(new wsdl)
-----------------------------------------------
<?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 transport="http://schemas.xmlsoap.org/soap/http";
   style="document" />
  <!-- I have no idea what this is used for -->
  <!-- soap:binding style="document" transport="
http://schemas.xmlsoap.org/soap/http"/<http://schemas.xmlsoap.org/soap/http%22/<http://schemas.xmlsoap.org/soap/http%22/%3Chttp://schemas.xmlsoap.org/soap/http%22/>-->
  <operation name="call">
   <soap:operation
    soapAction="urn:Comp_Api_Model_Server_HandlerAction" />
   <input>
    <soap:body
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
     namespace="http://types.echo.services"; use="literal" />
    <!-- I have no idea what this used for -->
    <!-- soap:body namespace="urn:Company" use="encoded" encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/<http://schemas.xmlsoap.org/soap/encoding/%22/%3Chttp://schemas.xmlsoap.org/soap/encoding/%22/>>>
-->
   </input>
   <output>
    <soap:body namespace="urn:Company" use="encoded"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; />
    <!--no idea what this used for -->
    <!-- soap:body namespace="urn:Company" use="encoded" encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/<http://schemas.xmlsoap.org/soap/encoding/%22/%3Chttp://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"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
     use="literal" />
    <!-- i have no idea what this is used for -->
    <!-- soap:body namespace="urn:Company" use="encoded" encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"/<http://schemas.xmlsoap.org/soap/encoding/%22/<http://schemas.xmlsoap.org/soap/encoding/%22/%3Chttp://schemas.xmlsoap.org/soap/encoding/%22/>>>
-->
   </input>
   <output>
    <soap:body namespace="urn:Company"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
     use="literal" />
    <!-- I have no idea what this is used for -->
   </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/"; />
  </port>
 </service>
</definitions>

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



On Fri, Oct 10, 2008 at 6:17 AM, Martin Gainty <[EMAIL PROTECTED]> wrote:

> the wsdl you were using was
> not well-formed and
> supported rpc instead of document-literal style
> here is a corrected version
>
>
> <?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 transport="http://schemas.xmlsoap.org/soap/http";
> style="document" />
>
> <!-- I have no idea what this is used for -->
>      <!-- soap:binding style="document" 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 encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"; namespace="
> http://types.echo.services"; use="literal"/>
>          <!-- I have no idea what this used for -->
>          <!-- 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/"; />
>          <!--no idea what this used for -->
>          <!-- 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" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"; use="literal"/>
>          <!-- i have no idea what this is used for -->
>          <!-- 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" encodingStyle="
> http://schemas.xmlsoap.org/soap/encoding/"; use="literal"/>
>          <!-- I have no idea what this is used for -->
>        </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/"; />
>      </port>
>    </service>
>  </definitions>
>
> HTH
> Martin
> ______________________________________________
> Disclaimer and confidentiality note
> Everything in this e-mail and any attachments relates to the official
> business of Sender. This transmission is of a confidential nature and Sender
> does not endorse distribution to any party other than intended recipient.
> Sender does not necessarily endorse content contained within this
> transmission.
>
>
> > Date: Thu, 9 Oct 2008 16:53:39 -0700
> > From: [EMAIL PROTECTED]
> > To: [email protected]
> > Subject: Re: Altering WSDL to match the expected SOAP
>
> >
> >
> > 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]
> >
>
> ------------------------------
> Get more out of the Web. Learn 10 hidden secrets of Windows Live. Learn
> Now<http://windowslive.com/connect/post/jamiethomson.spaces.live.com-Blog-cns!550F681DAD532637!5295.entry?ocid=TXT_TAGLM_WL_getmore_092008>
>

Reply via email to