Loading ...
Sorry, an error occurred while loading the content.

2203Can't locate object method "request" via package "Apache"

Expand Messages
  • T R Stickland
    Jul 11, 2007
      [First a quick hello.   We (http://edina.ac.uk/) have been using Apache::ASP for a few years, but you haven't heard much from us as it's worked pretty well!]

      For the first time I've built apache2 (apache 2.2.4, mod_perl 2.0.3) for use with ASP (2.59).   The build and configuration went fine.   The web server started up and was fine until the first time I tried to access an ASP application.
      Can't locate object method "request" via package "Apache" at [...]/perl5/lib/perl5/site_perl/5.8.0//Apache/ASP.pm line 165.
      ...and that line is...
      my $rtest = $ModPerl2 ? Apache2::RequestUtil->request() : Apache->request();
      It's calling Apache->request when should be calling Apache2::RequestUtil->request (it's mod_perl version 2.0.3).    So it's the $ModPerl2 flag.   Line 66 of ASP.pm initialized it:
      $ModPerl2 = ($mod_perl::VERSION >= 1.99);
      Now it turns out $mod_perl::VERSION is 1.30.   There's an easy workaround using $ENV{MOD_PERL_API_VERSION}
      $ModPerl2 = ($ENV{MOD_PERL_API_VERSION} >= 2);
      I see this has occurred before, though the error reported was different, and also in that case  $mod_perl::VERSION was undefined rather than having the wrong value.    See:  http://tech.groups.yahoo.com/group/apache-asp/message/2136

      On one hand the workaround is OK, and I'm not keen to guddle about in the mod_perl code.  On the other hand, I'm not really happy just ignoring the fact that $mod_perl::VERSION is wrong...

      Anyone know the cause and/or better fix?  


      Dr Tim Stickland
      EDINA (http://edina.ac.uk/)

    • Show all 4 messages in this topic