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

Problem with nested Java objects and SOAP::Lite

Expand Messages
  • James Felix Black
    i, As the subject line says; I m trying to pass a Java object that contains another to and from a Perl client. The server is using The Mind Electric s GLUE
    Message 1 of 2 , Mar 12 1:07 PM
    • 0 Attachment
      Hi,

      As the subject line says; I'm trying to pass a Java object that
      contains another to and from a Perl client. The server is using The
      Mind Electric's GLUE library, and can pass the object in question to
      the client properly. When I go to send, however, it fails.

      The Mine Electric people seem to think that the problem lies with the
      SOAP::Lite serializer, which seems reasonable to me, given my
      (minimal) level of understanding of the whole process. I quote:

      > SOAP::Lite seems to be doing things wrong. According to the soap
      > spec, if you're going to use href/id the id element has to be an
      > independent element in the SOAP:Body, with an attribute
      > "SOAP-ENC:root='0'" ... Previous attempts at interop with SOAP::Lite
      > haven't shown this problem, so I'd be willing to wager that there's
      > some sort of switch to make it publish the id'd element as an
      > independent element.

      If this is the case, can I easily throw this switch? Or will I have
      to delve into the murky realm of custom SOAP::Serializers?

      Thanks in advance,
      (jfb)

      ************************************************************************

      Here's the message, from GLUE to SOAP::Lite, that properly creates the
      nested objects in question:
    • Paul Kulchenko
      Hi, James! ... It s possible, however XML payloads you posted don t look the same. Payload generated by SOAP::Lite has circular reference, whereas GLUE s
      Message 2 of 2 , Mar 12 2:00 PM
      • 0 Attachment
        Hi, James!

        > The Mine Electric people seem to think that the problem lies with
        > the
        > SOAP::Lite serializer, which seems reasonable to me, given my
        > (minimal) level of understanding of the whole process. I quote:
        It's possible, however XML payloads you posted don't look the same.
        Payload generated by SOAP::Lite has circular reference, whereas
        GLUE's payload doesn't contain anything like that.

        <nestedData id='ref-31622720'
        xsi:type='namesp1:MyData'>
        <myFloat xsi:type='xsd:float'>6.45</myFloat>
        <myInt xsi:type='xsd:int'>6</myInt>
        <nestedData href='#ref-31622720'
        xsi:type='namesp1:MyData'/>
        <myString xsi:type='xsd:string'>Testing6</myString>
        </nestedData>

        SOAP::Lite indeed encodes id element as an independent element in
        env:Body, except when element has circular references; it's encoded
        in-place then. It may be not the right thing to do, I'll verify that.


        Would you be able to post XML payload generated by GLUE with circular
        references and your SOAP::Lite's client code (you can send it
        off-list to paulclinger@...)? Thank you.

        Best wishes, Paul.

        --- James Felix Black <jfelixbl@...> wrote:
        > Hi,
        >
        > As the subject line says; I'm trying to pass a Java object that
        > contains another to and from a Perl client. The server is using
        > The
        > Mind Electric's GLUE library, and can pass the object in question
        > to
        > the client properly. When I go to send, however, it fails.
        >
        > The Mine Electric people seem to think that the problem lies with
        > the
        > SOAP::Lite serializer, which seems reasonable to me, given my
        > (minimal) level of understanding of the whole process. I quote:
        >
        > > SOAP::Lite seems to be doing things wrong. According to the soap
        > > spec, if you're going to use href/id the id element has to be an
        > > independent element in the SOAP:Body, with an attribute
        > > "SOAP-ENC:root='0'" ... Previous attempts at interop with
        > SOAP::Lite
        > > haven't shown this problem, so I'd be willing to wager that
        > there's
        > > some sort of switch to make it publish the id'd element as an
        > > independent element.
        >
        > If this is the case, can I easily throw this switch? Or will I
        > have
        > to delve into the murky realm of custom SOAP::Serializers?
        >
        > Thanks in advance,
        > (jfb)
        >
        >
        ************************************************************************
        >
        > Here's the message, from GLUE to SOAP::Lite, that properly creates
        > the
        > nested objects in question:
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        > http://docs.yahoo.com/info/terms/
        >
        >

        > ATTACHMENT part 2 application/octet-stream
        >
        > And here's the message that SOAP::Lite produces, that fails on the
        > Java end:
        >
        >

        > ATTACHMENT part 4 application/octet-stream
        >
        >
        ************************************************************************
        >
        > --
        > Linux is only free if your time has no value.
        >


        __________________________________________________
        Do You Yahoo!?
        Try FREE Yahoo! Mail - the world's greatest free email!
        http://mail.yahoo.com/
      Your message has been successfully submitted and would be delivered to recipients shortly.