Loading ...
Sorry, an error occurred while loading the content.

how the vector is created, how to pass vector to webservices method apachesoap:V

Expand Messages
  • Rushi
    I am having problem to work with soaplite with hash & vector type Below is input parameter of my Web Services method vectorTest -
    Message 1 of 1 , Jul 10 7:07 AM
    • 0 Attachment
      I am having problem to work with soaplite with hash & vector type

      Below is input parameter of my Web Services method vectorTest

      - <wsdl:message name="vectorTestRequest">
      <wsdl:part name="userName" type="xsd:string" />
      <wsdl:part name="password" type="xsd:string" />
      <wsdl:part name="role" type="xsd:string" />
      <wsdl:part name="langpref" type="xsd:string" />
      <wsdl:part name="parentid" type="xsd:int" />
      <wsdl:part name="vectorParam" type="apachesoap:Vector" />
      </wsdl:message>

      Now just look on it the 6th parameter is Vector (apachesoap:Vector).
      Now how can i pass a vector (vec) from perl to my RPC Server.

      If i want to passs 'a','b','c','d' in vector how can i create a vector
      in perl. See below is my passing function

      my $vectorTest =
      $service->vectorTest
      ("rushi_asi\@...","rrrrr","india","en",1,$vector);

      If i passing $vector in different way using Map, Array, Hash i am
      receiving follwoign error using my XMLDebugger

      <!-- XML Dump -->

      POST /anacreon/servlet/rpcrouter HTTP/1.0
      Accept: text/xml
      Accept: multipart/*
      Host: MySite:ServicePORT
      User-Agent: SOAP::Lite/Perl/0.50
      Content-Length: 967
      Content-Type: text/xml; charset=utf-8
      SOAPAction: ""

      <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
      xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
      SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:xsd="http://www.w3.org/1999/XMLSchema">
      <SOAP-ENV:Body><namesp1:vectorTest
      xmlns:namesp1="com.logicboxes.foundation.sfnb.user.Test">
      <userName xsi:type="xsd:string">rushi_asi\@...</userName>
      <password xsi:type="xsd:string">rrrrr</password>
      <role xsi:type="xsd:string">india</role>
      <langpref xsi:type="xsd:string">en</langpref>
      <parentid xsi:type="xsd:int">1</parentid>
      <vectorParam SOAP-ENC:arrayType="xsd:string[4]"
      xsi:type="apachesoap:Vector">
      <item xsi:type="xsd:string">a</item>
      <item xsi:type="xsd:string">b</item>
      <item xsi:type="xsd:string">c</item>
      <item xsi:type="xsd:string">d</item>
      </vectorParam>
      </namesp1:vectorTest></SOAP-ENV:Body></SOAP-ENV:Envelope>HTTP/1.0 500
      Internal Server Error
      Server: Resin/2.1.11
      Content-Type: text/xml; charset=utf-8
      Date: Fri, 09 Jul 2004 10:09:30 GMT

      <?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>
      <soapenv:Fault>
      <faultcode>soapenv:Server.userException</faultcode>
      <faultstring>org.xml.sax.SAXException: No deserializer defined for
      array type {http://www.w3.org/1999/XMLSchema}string</faultstring>
      <detail/>
      </soapenv:Fault>
      </soapenv:Body>
      </soapenv:Envelope>

      <!-- END OF XML Dump -->



      2nd Propblem ----------------------------------------------------


      In more i also have small problem in case ofr hashTest see below code
      # Userdefine Structure
      struct( mymap => {
      param => '$' # user time used
      });
      # create an object:
      my $myHash = mymap->new(param=>'9999'
      );

      my $hashTest = $service->hashtableTest
      ("rushi_asi\@...","rrrr","india","en",1,$myHash);

      Now after passing the hash using my userdefine structure i m getting
      success but in XML Log i recevied unexpected
      mymap::param i need param insted of mymap::param

      <hashtableParam xsi:type="xmlsoap:Map">
      <item>
      <key xsi:type="xsd:string">mymap::param
      </key>
      <value xsi:type="xsd:int">9999
      </value>
      </item>
      </hashtableParam>
      </namesp1:hashtableTest>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>HTTP/1.0 200 OK


      Your help will be great appreciate

      Thanks in advance.
      Rushikesh
    Your message has been successfully submitted and would be delivered to recipients shortly.