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
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
->envelope(response => $method_name . 'Response', @results);
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
I created the wsdl file based on ones I have used in the past and
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