« Installation Instructions | Main | Support »


Asbjørn Thorsen

n00b SOAP::Lite programmer

Saker Ghani


I'm having a basic problem getting soaplite to work. I'm trying to get the examples working from the HOWTO section, and am seeing the following situation:

I have a file, hibye.cgi, copied verbatim from the HOWTO section --


use SOAP::Transport::HTTP;

-> dispatch_to('Demo')
-> handle;

package Demo;

sub hi {
return "hello, world";

sub bye {
return "goodbye, cruel world";

sub languages {
return ("Perl", "C", "sh");

And then I have a file, hibye.pl, mostly copied from the HOWTO section --


use SOAP::Lite;

print SOAP::Lite
-> uri('http://localhost/Demo')
-> proxy('http://localhost/hibye.cgi')
-> hi()
-> result;

I've simply changed the uri and proxy values (to my machine, of course).

Now, when I run invoke hibye.pl from the command line, I am getting the following error:

405 Method Not Allowed at ./hibye.pl line 7

I get the same error if I replace localhost with also. Any idea what I'm doing wrong? Funny thing is, if I don't change the uri and proxy values to my machine, and leave the original values as they are in the HOWTO section, all is well, and I get the intended result.

Help would be greatly appreciated,


I have a handheld device running Windows CE that has a program for scanning vehicle data. This program was written in .NET and is a .NET client. I have a SOAP::Transport::HTTP::CGI server that it needs to communicate with. The handheld starts to send data to my server and then half way through it it stops running. I have been told that it is the command HTTP 100 Continue that is causing the problem and I need to use Protocol HTTP1.0 as a possible solution.

I am hoping someone might have come accross this before.



I am trying to access .Net based web service by a perl web client.
Every thing is going smoothly if the .net web service is based on the file system.
But if it is an Http based web service, a IIS deployed web service, then the my perl web client is not able to access the published methods of the web service. The error message that i get is
HTTP::Client::send_receive: HTTP/1.1 500 Internal Server Error
More information regarding the .net web service is that
1. I have enabled Anonymous Access on the web site.
2. Execute permissions are set for both scripts and executables.
3. Read , write , directory browsing , indexing and log visits permissions are granted.

So tell me what can be the possible cause of this 500 Internal server error on IIS deployed web service.

Account Deleted

Hi All, Now, i have to use a .Net's web service to get some data.
That server provides three method ,say: getID() getNum(xxx) getName(xxx)
The "getNum" method needs a parameter xxx which is a XML format. I use the module: SOAP::Lite;

my $soap = SOAP::Lite
->on_action(sub{sprintf "%s/%s",@_})

my $result = $soap->getID(); #It works

my $str = '
《xml version="1.0" encoding="utf-8" standalone="yes" ?》
'; ### replace the 《 》 to
my $result = $soap->getNum($str); #It doesn't work

Why the "getNum" method can't work. Just because of the XML's parameter format ? Pls give me a hand.Thanks.

The comments to this entry are closed.