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

5392SOAP::Lite 0.67, namespaces, .NET and jwsdp 1.6

Expand Messages
  • Chris Dent
    May 9, 2006
      I'm creating a soap service with SOAP::Lite. For the time being
      the primary client is .NET.

      I've been able to get Perl and Ruby working just fine, with all
      kinds of ways of sending the data.

      I spent a lot of time trying to get things to work for .NET and jwsdp
      1.6 in ways suggested in the documentation (primarily fully qualifying
      the uri and type of my SOAP::Data). Eventually I started making
      progress by setting prefix('') and not using uri() for each of the data
      elements returned.

      This left the <method_name>Response element in the soap body.

      By changing SOAP::Lite as follows:

      --- /opt/local/lib/perl5/site_perl/5.8.7/SOAP/Lite.pm 2006-01-27 13:31:57.000000000 -0800
      +++ /tmp/Lite.pm 2006-05-08 22:46:42.000000000 -0700
      @@ -2566,7 +2566,7 @@

      my $result = $self->serializer
      ->prefix('s') # distinguish generated element names between client and server
      - ->uri($method_uri)
      + #->uri($method_uri)
      ->envelope(response => $method_name . 'Response', @results);
      return $result;

      I was able to get to a fully working state.

      This suggests to me that I'm doing something wrong, but what?

      If I'm not, is there a way to make it so the response envelope is
      as "clean" as both .NET and Java seem to want it, without hacking
      the SOAP::Lite code?

      I can think of two possible pathways here:

      * The wsdl file I have created, which is used to generate proxy
      code in both .NET and Java, is not adequately reporting what I
      actually send from the server.

      * I'm sending the wrong stuff from the server for my correct
      wsdl file.

      I created the wsdl file based on ones I have used in the past and
      Google's GoogleSearch.wsdl.

      The server code and wsdl are attached. Note these are complete
      and utter prototypes and shouldn't be taken as an example of my
      excellent coding style and knowledge ;) It's been a while since
      I've used SOAP::Lite and I don't think I ever got it.

      Thanks for input.

      Chris Dent http://burningchrome.com/~cdent/mt