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

SOAP::Lite Dispatching problem

Expand Messages
  • rcalosso
    am trying to get my Apache server to dispatch SOAP requests per some examples on the SOAP::Lite docs with not much success. I am running on RH9 with Apache
    Message 1 of 3 , May 4 6:40 PM
    • 0 Attachment
      am trying to get my Apache server to dispatch SOAP requests per
      some examples on the SOAP::Lite docs with not much success. I am
      running on RH9 with Apache 2.0.49, mod_perl 1.99_13 built on perl
      v5.8.3 all built from source locally.
      I added the following location directive to httpd.conf

      <Location /Broadline/SOAP>
      SetHandler perl-script
      PerlHandler Apache::SOAP
      PerlSetVar dispatch_to "DLManager"
      </Location>

      If have the following as DLManager.pm in the perl INC path:
      ########
      package DLManager;

      sub sayHello {
      shift;
      return "Hello" . shift;
      }

      1;
      #########

      and am using the following simple client to execute it.
      #!/usr/local/bin/perl -w

      use strict;

      use SOAP::Lite;

      my $Name = shift;
      print "\nCalling Service\n";
      print SOAP::Lite
      ->uri('http://localhost/DLManager')
      ->proxy('http://localhost/Broadline/SOAP')
      ->sayHello($Name)
      ->result;

      When I execute the client program I get
      405 Method not allowed at /hello.pl line 11
      error and no error messages in the error or access log files.
      Can someone shed some light on this for me? I read all the docs I
      could find regarding this on Google and SOAPLite.org and still have
      not been able to resolve the problem.
    • Paul Kulchenko
      Don t see anything wrong in your code. You get 405 in two cases: you send a POST request (as your client does) to a URL with a regular page; or you send a GET
      Message 2 of 3 , May 4 10:27 PM
      • 0 Attachment
        Don't see anything wrong in your code.

        You get 405 in two cases: you send a POST request (as your client
        does) to a URL with a regular page; or you send a GET request to a
        SOAP::Lite-enabled endpoint (which accepts POSTs).

        First thing, I would turn debugging on to see what's on wire:

        use SOAP::Lite
        on_debug => sub{print@_};

        Then, I would try to access your endpoint from a regular browser (you
        should get 405 if you have properly installed/configured Apache::SOAP
        handler).

        If nothing helps, I would send one more message to this list and
        include debug output.

        Best wishes, Paul.

        --- rcalosso <rcalosso@...> wrote:
        > am trying to get my Apache server to dispatch SOAP requests per
        > some examples on the SOAP::Lite docs with not much success. I am
        > running on RH9 with Apache 2.0.49, mod_perl 1.99_13 built on perl
        > v5.8.3 all built from source locally.
        > I added the following location directive to httpd.conf
        >
        > <Location /Broadline/SOAP>
        > SetHandler perl-script
        > PerlHandler Apache::SOAP
        > PerlSetVar dispatch_to "DLManager"
        > </Location>
        >
        > If have the following as DLManager.pm in the perl INC path:
        > ########
        > package DLManager;
        >
        > sub sayHello {
        > shift;
        > return "Hello" . shift;
        > }
        >
        > 1;
        > #########
        >
        > and am using the following simple client to execute it.
        > #!/usr/local/bin/perl -w
        >
        > use strict;
        >
        > use SOAP::Lite;
        >
        > my $Name = shift;
        > print "\nCalling Service\n";
        > print SOAP::Lite
        > ->uri('http://localhost/DLManager')
        > ->proxy('http://localhost/Broadline/SOAP')
        > ->sayHello($Name)
        > ->result;
        >
        > When I execute the client program I get
        > 405 Method not allowed at /hello.pl line 11
        > error and no error messages in the error or access log files.
        > Can someone shed some light on this for me? I read all the docs I
        > could find regarding this on Google and SOAPLite.org and still have
        >
        > not been able to resolve the problem.
        >
        >
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
        >
        >
      • rcalosso
        In further reviewing my errorlogs I think I narrowsed it down to the patch I tried to apply to SOAP::Transport::HTTP to work in Apache 2. Can someone point me
        Message 3 of 3 , May 5 12:48 AM
        • 0 Attachment
          In further reviewing my errorlogs I think I narrowsed it down to the
          patch I tried to apply to SOAP::Transport::HTTP to work in Apache
          2. Can someone point me to the "official" patch(es) needed to make
          SOAP::Lite and Apache::SOAP work with Apache2 and mode_perl 1.99.xx

          --- In soaplite@yahoogroups.com, Paul Kulchenko <paulclinger@y...>
          wrote:
          > Don't see anything wrong in your code.
          >
          > You get 405 in two cases: you send a POST request (as your client
          > does) to a URL with a regular page; or you send a GET request to a
          > SOAP::Lite-enabled endpoint (which accepts POSTs).
          >
          > First thing, I would turn debugging on to see what's on wire:
          >
          > use SOAP::Lite
          > on_debug => sub{print@_};
          >
          > Then, I would try to access your endpoint from a regular browser
          (you
          > should get 405 if you have properly installed/configured
          Apache::SOAP
          > handler).
          >
          > If nothing helps, I would send one more message to this list and
          > include debug output.
          >
          > Best wishes, Paul.
          >
          > --- rcalosso <rcalosso@y...> wrote:
          > > am trying to get my Apache server to dispatch SOAP requests per
          > > some examples on the SOAP::Lite docs with not much success. I
          am
          > > running on RH9 with Apache 2.0.49, mod_perl 1.99_13 built on
          perl
          > > v5.8.3 all built from source locally.
          > > I added the following location directive to httpd.conf
          > >
          > > <Location /Broadline/SOAP>
          > > SetHandler perl-script
          > > PerlHandler Apache::SOAP
          > > PerlSetVar dispatch_to "DLManager"
          > > </Location>
          > >
          > > If have the following as DLManager.pm in the perl INC path:
          > > ########
          > > package DLManager;
          > >
          > > sub sayHello {
          > > shift;
          > > return "Hello" . shift;
          > > }
          > >
          > > 1;
          > > #########
          > >
          > > and am using the following simple client to execute it.
          > > #!/usr/local/bin/perl -w
          > >
          > > use strict;
          > >
          > > use SOAP::Lite;
          > >
          > > my $Name = shift;
          > > print "\nCalling Service\n";
          > > print SOAP::Lite
          > > ->uri('http://localhost/DLManager')
          > > ->proxy('http://localhost/Broadline/SOAP')
          > > ->sayHello($Name)
          > > ->result;
          > >
          > > When I execute the client program I get
          > > 405 Method not allowed at /hello.pl line 11
          > > error and no error messages in the error or access log files.
          > > Can someone shed some light on this for me? I read all the docs
          I
          > > could find regarding this on Google and SOAPLite.org and still
          have
          > >
          > > not been able to resolve the problem.
          > >
          > >
          > >
          > > ------------------------ Yahoo! Groups Sponsor
          > >
          > >
          > > Yahoo! Groups Links
          > >
          > >
          > >
          > >
          > >
        Your message has been successfully submitted and would be delivered to recipients shortly.