Hi all,
We're using SOAP::Lite in eBox [1], a SME server. We're using SOAP::Lite
in both sides, client and server.
We are experiencing some problems related to the module loading in
server side when more than one process are serving requests. The
obtained "faultstring" is as follows:
Failed to locate method (foo) in class (EBox::Services::MockService)
at /usr/share/perl5/SOAP/Lite.pm line 2589.
I have read about issues regarding to the URI. However, we are testing
with Apache2 mpm-worker. It completely works when a single instance is
set.
We've done some researching and we have found that
EBox::Services::MockService is not loaded (%INC) when the exception
arises, which happens from time to time. Loading manually that module on
Lite.pm code works flawlessly.
There is any solution to make it work with several servers working at
once in a server.
I dump my configuration to make it clearer:
apache2.conf:
<IfModule mpm_worker_module>
StartServers 1
MaxClients 150
MinSpareThreads 5
MaxSpareThreads 10
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
<VirtualHost 10.200.0.30>
...
<Location /soap>
SetHandler perl-script
PerlResponseHandler Apache2::SOAP
PerlSetVar dispatch_to "/usr/share/perl5,
EBox::Services::MockService"
</Location>
...
</VirtualHost>
Client side:
my $soapConn = new SOAP::Lite(
uri => 'http://ebox-services.com/EBox/Services/MockService',
proxy => 'https://10.200.0.30/soap,
);
$soapConn->call(foo => @params);
My configuration:
SOAP::Lite 0.69
Apache2::SOAP 0.72
Mod_perl 2.0.2-2.4
Apache worker-mpm 2.2.3
Debian etch
Any help will be appreciated to make it work with more than one
listening server.
Thanks very much for your project!
|