What shall i say, except thank you very much, Tom. It works perfectly now, and all the day searching for a mistake i did in my server configuration now ended up in a as it seems a bugfix for a bug in a module.
Thank you for your time, and the help you provided me, and hopefully others, when they're reading the archives.
Georg
On 8/2/06, Tom Schindl
<[EMAIL PROTECTED]> wrote:
Georg Grabler schrieb:
> A the logfile says, i execute the method using Apache2.
>
> For a better understanding:
>
> my $cl = ($self->{'MOD_PERL_VERSION'} == 1) ?
> $r->header_in('Content-length') : $r->headers_in->{'Content-length'};
>
> This is the code Apache2::SOAP module uses for determining the version
> of modperl.
> The $self->{'MOD_PERL_VERSION'} gets set in the new method, where the
> code seems to fail at all.. so the version is never set to two.
>
> codepiece cut from Apache2::SOAP:
> sub new {
> my $self = shift;
> unless (ref $self) {
> my $class = ref($self) || $self;
> $self = $class->SUPER::new(@_);
> SOAP::Trace::objects('()');
> }
> MOD_PERL: {
> (eval { require Apache;} ) and do {
> require Apache::Constants;
> Apache::Constants->import('OK');
> $self->{'MOD_PERL_VERSION'} = 1;
> last MOD_PERL;
> };
> (eval { require Apache2::RequestRec;} ) and do {
> require Apache2::RequestUtil;
> require Apache2::RequestIO;
> require Apache2::Const;
> require APR::Table;
> Apache2::Const->import(-compile => 'OK');
> $self->{'MOD_PERL_VERSION'} = 2;
> print "!!MOD PERL VERSION DEFINED!!";
> last MOD_PERL;
> };
> die "Unsupported version of mod_perl";
> }
> return $self;
> }
Do you have mp1 and mp2 installed in the same perl-tree.
If yes then it's clear why you always get to
"$self->{'MOD_PERL_VERSION'} = 1;". To distinguish if running in mp1 or
mp2 a module should use totally different code.
if (exists $ENV{MOD_PERL_API_VERSION} && $ENV{MOD_PERL_API_VERSION} == 2) {
require Apache2::Response;
require Apache2::RequestRec;
require Apache2::RequestUtil;
require Apache2::RequestIO;
// ...
} else {
require Apache;
// ...
}
I'd advice the Apache2::SOAP maintainer that he will get into trouble
when mp1 and mp2 are installed in the same tree.
Tom