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

Re: SOAP::Lite interoperability with .NET using hrefs

Expand Messages
  • msanesh <anesh@hotmail.com>
    I don t have direct relation with what you are trying, but I had a similar problem. I had soaplite client talking to apache axis server. The apache axis server
    Message 1 of 9 , Feb 10, 2003
    • 0 Attachment
      I don't have direct relation with what you are trying, but I had a
      similar problem.

      I had soaplite client talking to apache axis server. The apache
      axis server was sending back multi refs (hrefs) which could not be
      understood by soaplite. However there was a way to turnoff mutirefs
      in apache axis and that fixed my problem. I do not know how to turn
      it off in .net.

      Anesh.

      --- In soaplite@yahoogroups.com, "Andy Kelk" <andy@v...> wrote:
      > Hi,
      >
      > Does anyone have any ideas on this at all?
      >
      > I've pretty much hit a wall and am about to give up with it. I
      think I
      > might have to investigate other SOAP implementations and see if I
      can
      > get them to work with .Net
      >
      >
      >
      >
      > --
      > Andy Kelk
      > Head of Integration, Venda
      > andy@v...
      >
      > > -----Original Message-----
      > > From: Andy Kelk
      > > Sent: 05 February 2003 16:27
      > > To: soaplite@yahoogroups.com
      > > Subject: RE: [soaplite] SOAP::Lite interoperability with .NET
      > > using hrefs
      > >
      > >
      > > As a follow up to my own message, I can get the data to be
      > > recognised if I get VB.net to use literal style with
      > > "wrapped" ParameterStyle.
      > >
      > > <soap:Envelope
      xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
      > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      > > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      > > <soap:Body>
      > > <VendaCreateProduct xmlns="urn:VendaProducts">
      > > <skuElements>
      > > <skuElement>
      > > ....
      > > </skuElement>
      > > </skuElements>
      > > </VendaCreateProduct xmlns="urn:VendaProducts">
      > > </soap:Body>
      > > </soap:Envelope>
      > >
      > > This is not what I want, however, as the datatypes are lost
      > > and I have no arrays defined.
      > >
      > > It seems that the initial XML that .Net produces is valid but
      > > that the hrefs are confusing SOAP::Lite. Is there any way I
      > > can get around this?
      > >
      > > Thanks
      > >
      > > Andy
      > >
      > >
      > > --
      > > Andy Kelk
      > > Head of Integration, Venda
      > > andy@v...
      > >
      > > ------------------------ Yahoo! Groups Sponsor
      > > ---------------------~--> Get 128 Bit SSL Encryption!
      > > http://us.click.yahoo.com/LIgTpC/vN2EAA/xGHJAA> /W6uqlB/TM
      > >
      > >
      > > --------------------------------------------------------------
      > > -------~->
      > >
      > > 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/
      > >
      > >
      > >
    • Randy J. Ray
      (Apologies to Andy for the duplication, I forgot to Cc soaplite) ... Similar to the response I gave a few days ago concerning arrays, the style .Net is
      Message 2 of 9 , Feb 10, 2003
      • 0 Attachment
        (Apologies to Andy for the duplication, I forgot to Cc soaplite)

        > Does anyone have any ideas on this at all?
        >
        > I've pretty much hit a wall and am about to give up with it. I think I
        > might have to investigate other SOAP implementations and see if I can
        > get them to work with .Net

        Similar to the response I gave a few days ago concerning arrays, the style
        .Net is expecting to see structures in is not the same as what SOAP::Lite
        defaults to. In general, you would need to plug in a routine to serialize your
        data, and you would be best-served by having the hashref be blessed, so that
        you can associate this with a specific class, and not just all hashrefs.

        See the SOAP::Serializer heading in the SOAP::Lite manual page. I realize this
        isn't as helpful as you may have hoped, but I haven't done a lot of .Net
        stuff, either. Some, but not a lot.

        Randy
        --
        rjray@... http://www.rjray.org http://www.svsm.org

        Any spammers auto-extracting addresses from this message will definitely want
        to include uce@... and report@...
      • Duncan Cameron
        ... I had a play-around with the xml you showed in your original post and SOAP::Lite doesn t seem to have a problem with hrefs. ================== my $xml =
        Message 3 of 9 , Feb 10, 2003
        • 0 Attachment
          On 2003-02-10 Andy Kelk wrote:
          >Hi,
          >
          >Does anyone have any ideas on this at all?
          >
          >I've pretty much hit a wall and am about to give up with it. I think I
          >might have to investigate other SOAP implementations and see if I can
          >get them to work with .Net
          >
          >
          >
          >
          >--
          >Andy Kelk
          >Head of Integration, Venda
          >andy@...
          >
          >> -----Original Message-----
          >> From: Andy Kelk
          >> Sent: 05 February 2003 16:27
          >> To: soaplite@yahoogroups.com
          >> Subject: RE: [soaplite] SOAP::Lite interoperability with .NET
          >> using hrefs
          >>
          >>
          >> As a follow up to my own message, I can get the data to be
          >> recognised if I get VB.net to use literal style with
          >> "wrapped" ParameterStyle.
          >>
          >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
          >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          >> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          >> <soap:Body>
          >> <VendaCreateProduct xmlns="urn:VendaProducts">
          >> <skuElements>
          >> <skuElement>
          >> ....
          >> </skuElement>
          >> </skuElements>
          >> </VendaCreateProduct xmlns="urn:VendaProducts">
          >> </soap:Body>
          >> </soap:Envelope>
          >>
          >> This is not what I want, however, as the datatypes are lost
          >> and I have no arrays defined.
          >>
          >> It seems that the initial XML that .Net produces is valid but
          >> that the hrefs are confusing SOAP::Lite. Is there any way I
          >> can get around this?
          >>
          >> Thanks
          >>
          >> Andy
          >>
          I had a play-around with the xml you showed in your original post and SOAP::Lite
          doesn't seem to have a problem with hrefs.
          ==================
          my $xml = <<'END';
          <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:tns="urn:VendaProducts"
          xmlns:types="urn:VendaProducts/encodedTypes"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <soap:Body
          soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <tns:VendaCreateProduct>
          <skuElements href="#id1" />
          </tns:VendaCreateProduct>
          <soapenc:Array id="id1" soapenc:arrayType="tns:skuElement[3]">
          <Item href="#id2" />
          <Item href="#id3" />
          <Item href="#id4" />
          </soapenc:Array>
          <tns:skuElement id="id2" xsi:type="tns:skuElement">24</tns:skuElement>
          <tns:skuElement id="id3" xsi:type="tns:skuElement">36</tns:skuElement>
          <tns:skuElement id="id4" xsi:type="tns:skuElement">48</tns:skuElement>
          </soap:Body>
          </soap:Envelope>
          END

          my $ds = SOAP::Deserializer->new;

          my $som = $ds->deserialize($xml);
          my $sku = $som->dataof("/Envelope/Body/VendaCreateProduct/skuElements");
          print "@{$sku->value}";
          ==================
          this prints:-

          24 36 48

          but I had to create a custom deserializer for the skuEelement. Did you create one
          when you sent your orignal post?

          Regards,
          Duncan Cameron
        • Martin Hajduch
          ... i have to confirm this i have axis server returning an array of complex types as hrefs and i haven t encountered any problems (with hrefs) on the client
          Message 4 of 9 , Feb 11, 2003
          • 0 Attachment
            > I had a play-around with the xml you showed in your original post and SOAP::Lite
            > doesn't seem to have a problem with hrefs.

            i have to confirm this
            i have axis server returning an array of complex types as hrefs and i haven't encountered
            any problems (with hrefs) on the client side (SOAP::Lite)
            i'm even not using my own deserializer

            regards,
            martin
          • Andy Kelk
            Hi all, Thanks ever so much for all of the replies. It certainly gave me some new ammo to fire at the problem and I have now found a solution. I have
            Message 5 of 9 , Feb 11, 2003
            • 0 Attachment
              Hi all,

              Thanks ever so much for all of the replies. It certainly gave me some
              new ammo to fire at the problem and I have now found a solution. I have
              succesfully had a .Net client interact and perform its desired actions
              with the SOAP::Lite server.

              Thanks once again to all who helped out. :-)

              Andy


              --
              Andy Kelk
              Head of Integration, Venda
              andy@...
            • Kevin M. Goess
              ... Passing a struct, one of whose members is an array, back and forth between SOAP::Lite and dotNet (a c# class in a dll). Something like this $d = { trkNum
              Message 6 of 9 , Apr 10 8:46 AM
              • 0 Attachment
                On Thursday 10 April 2003 01:04 am, you wrote:
                > > Andy, can you share the secret with us? I'm trying to get
                > > through the same
                > > problem and it would be so helpful to see some source code.
                >
                > I will certainly do my best. What exactly is the problem you're having?

                Passing a struct, one of whose members is an array, back and forth between
                SOAP::Lite and dotNet (a c# class in a dll). Something like this

                $d = { trkNum => "123",
                authCred => "fubar",
                charges => [2,6,9]
                };

                Using Randy Ray's example
                (http://www.perl.com/pub/a/2003/03/26/perlanddotnet.html) of
                serialize_complex_type() I was able to send the struct back and forth using

                Use=System.Web.Services.Description.SoapBindingUse.Literal

                but that doesn't work for sending the array from dotNET to SOAP::Lite because
                the type information isn't included. Changing from 'Literal' to 'Encoded'
                gets the array from dotNet to SOAP::Lite just fine but then dotNet doesn't
                find any data in the response. My current hyposthesis is that I'm missing
                some type information in the SOAP::Lite response, but nothing I've tried has
                yielded good results and since my understanding of SOAP is still a little
                shallow I'm really just groping in the dark, so I thought if I had a working
                example I could work backwards from it.

                I really appreciate your offer of help. I can post as much source code or xml
                as you care to look at, or look at yours--what do you think would be most
                productive?


                --
                Kevin M. Goess
                Software Engineer
                Ensenda, Inc.
                (415) 247-6779
              Your message has been successfully submitted and would be delivered to recipients shortly.