Thanks for the help
I am doing the following:
#--
package ServerDemo;
use strict;
use SOAP::Transport::HTTP::Apache;
sub handler {
my $safe_classes = {
BlotterService = undef
};
SOAP::Transport::HTTP::Apache-handler($safe_classes);
}
#---
package BlotterService;
use strict;
sub new {
bless {}, shift;
}
sub handle_request {
my ($self, $headers, $body, $envelopeMaker) = @_;
$body-{extra_stuff} = heres some extra stuff;
foreach my $header (@$headers)
{
$header-{extra_stuff} = heres some more extra stuff;
$envelopeMaker-add_header(undef, undef, 0, 0, $header);
}
$envelopeMaker-set_body(undef, 'myresponse', 0, $body);
}
I am still unable to check it/ write a client for it. I always get the error
Bad Request. I have also addedd the location tag in httpd.conf
Thanks.
Rizwan
- Original Message -
From: Mark Fowler [EMAIL PROTECTED]
To: Rizwan Majeed [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Wednesday, February 27, 2002 2:58 PM
Subject: Re: trouble with mod-perl soap handler
On Wed, 27 Feb 2002, Rizwan Majeed wrote:
I am using the mod-perl handler for soap. I wasnt sure how to test it.
Can any body tell me how to test the service I make.
Hi.
I was playing with this stuff yesterday, so here are some points from
someone who's new to this stuff
First off, there's an example in the mod_perl cookbook. See chapter 15,
secion 15.16 Creating a SOAP server. In particular, the listing you
might want to take a look at is the example of a script that calls thier
soap server server.
http://www.modperlcookbook.org/code/ch15/HalfLife-QueryServer-0.10/eg/querys
oap.pl
Secondly, have a look at Leon Brocard's stuff at
http://www.astray.com/services/ This is a further example of using SOAP -
this time to call a infobot.
Basically what you want to do from your client is
#!/usr/bin/perl
use SOAP::Lite +autodispatch =
uri = 'Some unique uri to identify your request',
proxy = 'The url that is in your Location in httpd.conf';
my $object = NameOfMySOAPedModule-new();
$object-a_method();
$object-an_other_method();
MORE Importantly. how should I make sure the handler is invoked. I think
it is not being invoked. I have also copied the package in the perls
@INC path //site_perl. The package has a handler function that
should be invoked.
Try GETing the url. Assuming you have LWP installed:
[mark@pate mark]$ GET http://2shortplanks.com/mod_soap
HTML
HEADTITLEAn Error Occurred/TITLE/HEAD
BODY
H1An Error Occurred/h1
405 Method Not Allowed
/BODY
/HTML
For a simple GET if the handler is being called you should get the 405
(as you didn't issue a proper soap request.)
--
s'' Mark Fowler London.pm Bath.pm
http://www.twoshortplanks.com/ [EMAIL PROTECTED]
';use Term'Cap;$t=Tgetent Term'Cap{};print$t-Tputs(cl);for$w(split/ +/
){for(0..30){$|=print$t-Tgoto(cm,$_,$y). $w;select$k,$k,$k,.03}$y+=2}