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

5056Unable to connect VBS script to SOAP::Lite server

Expand Messages
  • Charlie Hills
    Dec 19, 2005
      I've written a simple/test SOAP server which looks like this:

      package wrapper;

      use strict;
      use SOAP::Lite;
      use core;

      sub test { shift @_; return SOAP::Data->name('handle', core::test(@_)); }


      core::test() does nothing more than warn("I'm here") and return a
      number. It really is just a test. The client looks like this:


      use strict;
      use SOAP::Lite;
      my $s = new SOAP::Lite(
      'proxy' => 'http://address:8007',
      'uri' => 'wrapper'
      my $response = $s->test('apple');
      print $response->result . "\n";

      This works perfectly. It prints the value returned by core::test() and
      "I'm here" appears in apache's error_log, as expected.

      Trouble is, the VBScript client (using the low-level API as described
      in the MSSOAP Toolkit documentation) dies a horrible death. The only
      clue shows up in error_log:

      Invalid URI in request POST HTTP/1.1

      The soap server uses Apache::SOAP via these httpd.conf entries:

      SetHandler perl-script
      PerlHandler Apache::SOAP
      PerlSetVar dispatch_to "wrapper"

      When I use SOAP::Transport::HTTP::CGI then both the perl and VBS
      clients work. The VBS client only seems to fail when I use this
      method. I'm at a complete loss. I wish I was smarter.