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

Generating SOAP request manually?

Expand Messages
  • dongleuk
    Hi, I m using a SOAP::Lite based client to call a method called submit which takes a (fairly) complex xml structure as an argument. This structure is used in
    Message 1 of 2 , Jan 4, 2006
    • 0 Attachment
      Hi,

      I'm using a SOAP::Lite based client to call a method called "submit"
      which takes a (fairly) complex xml structure as an argument. This
      structure is used in other places so I don't want / need to generate
      it using SOAP::Lite.

      I'm trying to call the method using something like:

      $soap = SOAP::Lite->new()
      ->uri($uri)
      ->proxy($proxy)
      ->encprefix('')
      ->encoding('UTF-8')
      ->use_prefix(0)
      ->encodingStyle(undef)
      ->autotype(0)
      ->submit($xml);

      which generates a request which looks like:

      <soap:Body>
      <submit xmlns="http://workflowengine.ixico.net">
      <c-gensym2>
      <xmlstuff...>
      </c-gensym2>
      etc...


      The <c-gensym2> tags (which appear to be generated by
      &SOAP::Serializer::gen_name) are causing the request to be rejected by
      the (axis) server.

      Is it possible to either:
      1) Generate the request without the <c-gensym2> tags?

      or

      2) Generate the entire SOAP request manually? Obviously this would be
      fairly simple in this case since I just need to put <submit> tags
      round the xml data.

      The SOAP::Lite man page seems to imply this is possible but doesn't
      really describe how to - I'm guessing I need to supply an alternative
      to SOAP::Serializer?

      Sorry if this is obvious / has been asked before but I can't find it
      anywhere :)

      Thanks,

      Rob
    • Eric Bridger
      You will need to use the SOAP::Data element to define both your method and your parameters See:
      Message 2 of 2 , Jan 5, 2006
      • 0 Attachment
        You will need to use the SOAP::Data element to define both your method
        and your parameters

        See:

        http://www.majordojo.com/soaplite/docs/SOAP/Data.html#COMPOSING_MESSAGES_USING_RAW_XML

        Then use the SOAP::Lite->call method.

        See: (in a different context but shows the general idea)
        http://www.majordojo.com/soaplite/2003/04/how_to_specify.html

        HTH
        Eric


        On Wed, 2006-01-04 at 12:24, dongleuk wrote:
        > Hi,
        >
        > I'm using a SOAP::Lite based client to call a method called "submit"
        > which takes a (fairly) complex xml structure as an argument. This
        > structure is used in other places so I don't want / need to generate
        > it using SOAP::Lite.
        >
        > I'm trying to call the method using something like:
        >
        > $soap = SOAP::Lite->new()
        > ->uri($uri)
        > ->proxy($proxy)
        > ->encprefix('')
        > ->encoding('UTF-8')
        > ->use_prefix(0)
        > ->encodingStyle(undef)
        > ->autotype(0)
        > ->submit($xml);
        >
        > which generates a request which looks like:
        >
        > <soap:Body>
        > <submit xmlns="http://workflowengine.ixico.net">
        > <c-gensym2>
        > <xmlstuff...>
        > </c-gensym2>
        > etc...
        >
        >
        > The <c-gensym2> tags (which appear to be generated by
        > &SOAP::Serializer::gen_name) are causing the request to be rejected by
        > the (axis) server.
        >
        > Is it possible to either:
        > 1) Generate the request without the <c-gensym2> tags?
        >
        > or
        >
        > 2) Generate the entire SOAP request manually? Obviously this would be
        > fairly simple in this case since I just need to put <submit> tags
        > round the xml data.
        >
        > The SOAP::Lite man page seems to imply this is possible but doesn't
        > really describe how to - I'm guessing I need to supply an alternative
        > to SOAP::Serializer?
        >
        > Sorry if this is obvious / has been asked before but I can't find it
        > anywhere :)
        >
        > Thanks,
        >
        > Rob
        >
        >
        >
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
      Your message has been successfully submitted and would be delivered to recipients shortly.