http://qs321.pair.com?node_id=874652

g0n has asked for the wisdom of the Perl Monks concerning the following question:

Esteemed Monks

I'm trying to do a bit of basic evaluation of Perl SOAP modules for a task. I seem to be failing at the first hurdle. My code is as follows:

Server:

use strict; use warnings; use Data::Dumper; use SOAP::Transport::HTTP; SOAP::Transport::HTTP::CGI -> dispatch_to('Demo') -> handle; package Demo; sub hi { return "hello, world"; } sub bye { return "goodbye, cruel world"; }
(Taken from http://www.perl.com/pub/2001/01/soap.html - it's quite an old example but other examples appear similar)

This is running as a cgi script in an Apache 1.3, mod_perl environment.

client:

use strict; use warnings; use SOAP::Lite; print SOAP::Lite -> uri('http://myserver.manheim.co.uk:51111/webservices/vehicle') + -> proxy('http://myserver.manheim.co.uk:51111/webservices/vehicle/ +soaptest.pl') -> hi() -> result;

When I run the client, nothing happens for a long while, then I get the following message:

[Tue Nov 30 13:44:40 2010] 15689 Digit.pl: Deep recursion on subroutin +e "utf8::SWASHNEW" at /usr/share/perl/5.10/utf8_heavy.pl line 251. [Tue Nov 30 13:44:40 2010] 15689 Digit.pl: Deep recursion on subroutin +e "CGI::Carp::die" at /usr/share/perl/5.10/utf8_heavy.pl line 198.

I found a suggestion (can't find the URL now) that this is a script error, which sends carp/die into a tailspin, but haven't been able to find a way of tracking down what's wrong with it.

Can anyone suggest a way past this?

Update:

kcotts comment has solved my problem - replacing uri('http://myserver.manheim.co.uk:51111/webservices/vehicle' with uri('http://myserver.manheim.co.uk:51111/Demo' made the thing work immediately. Thanks Corion & ruoso - I'll investigate alternatives to SOAP::Lite.

--------------------------------------------------------------

"If there is such a phenomenon as absolute evil, it consists in treating another human being as a thing."
John Brunner, "The Shockwave Rider".