-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I am trying to get SOAP to work under mod_perl. Googling about and
reading what I can find on it, it looks like there are many ways to do
this, but they are all giving me the same (non-working) result.

I have two systems I'm trying to do this on: A Mac with Apache
1.2.33/mod_perl 1.29, and a Soalris 8 box with Apache 1.1.28 and
mod_perl 1.27.

My most recent attempts have been with Apache::SOAP, so I'll use that as
my example:

I have this in my httpd.conf:

   <Location /steve/rpc/>
       SetHandler perl-script
       PerlHandler Apache::SOAP
       PerlSetVar dispatch_to 'Demo'
   </Location>

Demo.pm is in the @INC path. It contains:

   package Demo;

   sub hi {
     return "hello, world";
   }


I call it like this:

   use SOAP::Lite +trace => [qw(all)];

   my $soap = SOAP::Lite->uri('http://<my server>/Demo');
   my $proxy = $soap->proxy('http://<my server>/steve/rpc/');
   my $obj = $proxy->hi();
   print $obj->result;

The (rather verbose) output is:

SOAP::Transport::new: ()
SOAP::Serializer::new: ()
SOAP::Deserializer::new: ()
SOAP::Parser::new: ()
SOAP::Lite::new: ()
SOAP::Transport::HTTP::Client::new: ()
SOAP::Lite::call: ()
SOAP::Serializer::envelope: ()
SOAP::Serializer::envelope: hi
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Transport::HTTP::Client::send_receive: HTTP::Request=HASH(0x18baed8)
SOAP::Transport::HTTP::Client::send_receive: POST
http://www.cm.aol.com/steve/rpc/ HTTP/1.1
Accept: text/xml
Accept: multipart/*
Content-Length: 448
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.cm.aol.com/Demo#hi";

<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/1999/XMLSchema";
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";><SOAP-ENV:Body><namesp1:hi
xmlns:namesp1="http://www.cm.aol.com/Demo"/></SOAP-ENV:Body></SOAP-ENV:Envelope>
SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x18c18e4)
SOAP::Transport::HTTP::Client::send_receive: HTTP/0.9 200 (OK) EOF
Client-Date: Thu, 18 Aug 2005 16:22:41 GMT
Client-Peer: 10.178.2.10:80
Client-Response-Num: 1

Can't call method "result" on an undefined value at ./test1.pl line 13.
SOAP::Lite::DESTROY: ()
SOAP::Serializer::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Deserializer::DESTROY: ()
SOAP::Parser::DESTROY: ()
SOAP::Transport::DESTROY: ()
SOAP::Transport::HTTP::Client::DESTROY: ()


The problem is the $obj is always undefined. This happens whether or not
the method I call actually exists, which leads me to believe the Demo.pm
file isn't even being loaded, but I'm not sure of that. It seems like it
SHOULD be loaded...

On the Mac, calling the method "$proxy->hi();" kills the Apache child
process with an error like this in the error_log:

[Thu Aug 18 09:21:40 2005] [notice] child pid 868 exit signal Bus error (10)

I THINK the child process is being killed on the Solaris box too, but
I'm not sure of that. There's nothing in the log about it, but that's a
production box and I'm not free to mess with it too much in my testing.

As I mentioned, I've tried other methods (SOAP::Transport::HTTP::Apache
and Apache::Registry) and I get exactly the same result. I've follwed
examples from "mod_perl Developer's Cookbook", and "Programming Web
Services with Perl" as well as from perl.apache.org and
guilde.soaplite.com. It's only the mod_perl examples I can't get to
work. I'm using these scripts (Demo.pm and others) fine with CGI SOAP.
I'm thinking something is misconfigured in mod_perl, but darned if I can
figure out what.

Can anyone point out what I'm missing? Or at least point out a different
FM to R?

Thanks
- --
Steve Baker
kiku wa ittoki no haji
kikanu wa matsudai no haji
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDBLn1z179gX3oLkwRAlUAAJ0ZIYhjR3dz2Ig9bybU2o/1qgRNuwCdGqzu
TXhPGhCA8H/rQn63ijW9FVI=
=KGiM
-----END PGP SIGNATURE-----

Reply via email to