6088Apache 2, mod_perl, SOAP::Lite issue
- Jan 11, 2008After my Apache/mod_perl/SOAP::Lite based server is running for a
while and working perfectly, I get the following error when making a
Error occurred making remote request call
(Failed to locate method (search) in class (ABC_DB_SOAP) at
/usr/local/perl/lib/site_perl/5.8.8/SOAP/Lite.pm line 2586.)
where the method is 'search' and the module name is 'ABC_DB_SOAP'
If I try to make the same call right away, it may work or I might get
the same error. I assume this is because it uses a different or same
httpd child process. As time goes on and the server is used more, the
frequency of the errors is higher...
The entry in my httpd.conf file is:
PerlSetVar options "compress_threshold => 1048576"
PerlSetVar dispatch_to "/usr/local/mystuff/soap, ABC_DB_SOAP"
Reading the perldoc for SOAP::Lite, it mentions:
For dynamic deployment you can specify the name either directly (in
that case it will be "require"d without any restriction) or
indirectly, with a PATH. In that case, the ONLY path that will be
available will be the PATH given to the dispatch_to() method). For
information how to handle this situation see "SECURITY" section.
I 'use' various Perl modules in ABC_DB_SOAP.pm and also 'use' them in
a mod_perl startup script which is defined in httpd.conf using
PerlRequire - for example:
So I think that this is synonymous to the methods offered in the
SECURITY section. Here is what the startup.pl file looks like:
use ModPerl::Util ();
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::RequestUtil ();
use Apache2::ServerRec ();
use Apache2::ServerUtil ();
use Apache2::Connection ();
use Apache2::Log ();
use Apache2::Const -compile => ':common';
use APR::Const -compile => ':common';
use APR::Table ();
The DBI module is built into my Perl distro, but MyModule resides
under /usr/local/mystuff/lib. I use PERL5LIB to include this path to
my @INC Could this be an issue?
I have seen this issue mentioned before by Googling for it, Perl
Monks, etc... - but have not found any definitive solutions.
Any ideas? Thanks in advance...
- Next post in topic >>