RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
It's hard to generalize because in some cases the shared object file may actually not be installed. However, there should probably be something in the documentation that tells the user to make sure that the LD_LIBRARY_PATH variable and/or the /etc/ld.so.conf file include the usual default installation paths for required packages. -DeAngelo -Original Message- From: Perrin Harkins [mailto:perrin@;elem.com] Sent: Friday, November 08, 2002 1:10 PM To: DeAngelo Lampkin Cc: mod_perl Mailing List Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED DeAngelo Lampkin wrote: > And of course the other reason is that if the solution to the problem > was so obvious from the error message, somebody would have posted a > solution before I figured it out (with help from you guys). There is documentation related to this problem in the troubleshooting section, and if you'd like to generalize it a little so it will be easier for others to find when looking at this type of message, your help would be welcome. The current documentation is here: http://perl.apache.org/docs/1.0/guide/troubleshooting.html#install_driver_Oracle__failed__Can_t_load__DBD_Oracle_Oracle_so__for_module_DBD__Oracle - Perrin
Re: Can't locate object method "new" via package "Apache::Request"(via Mason)...SOLVED
DeAngelo Lampkin wrote: And of course the other reason is that if the solution to the problem was so obvious from the error message, somebody would have posted a solution before I figured it out (with help from you guys). There is documentation related to this problem in the troubleshooting section, and if you'd like to generalize it a little so it will be easier for others to find when looking at this type of message, your help would be welcome. The current documentation is here: http://perl.apache.org/docs/1.0/guide/troubleshooting.html#install_driver_Oracle__failed__Can_t_load__DBD_Oracle_Oracle_so__for_module_DBD__Oracle - Perrin
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
Cool. Will do. -Original Message- From: Tim Tompkins [mailto:timt@;arttoday.com] Sent: Thursday, November 07, 2002 12:27 PM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED > As a quick follow-up, the "PerlModule Apache::Request" line is NOT > needed in the httpd.conf file for Mason to work. However, it was a very > valuable debugging tool. That wasn't really the purpose, though. The purpose was to pre-load the module in the parent apache process for efficiency. My suggestion did come about because it appeared that Apache::Request wasn't being loaded at all. I'm not exacly sure how that happened as Mason's ApacheRequest attempts to require() Apache::Request a couple of places. But just the same, my suggestion to pre-load Apache::Request, as well as any other lib you normally use, stands. See: http://perl.apache.org/docs/1.0/guide/performance.html#Preloading_Perl_Modul es_at_Server_Startup Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ --
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
>Huh? >It tells you EXACTLY what is wrong. No, not really. One reason is that it's not immediately clear (to me) which file can't be loaded. Is it Request.so or libapreq.so.1 that can't be loaded? This ambiguity is further blurred when you know both files are installed. And of course the other reason is that if the solution to the problem was so obvious from the error message, somebody would have posted a solution before I figured it out (with help from you guys). Searching the mailing list archives indicates that method name resolution is not exacly a new problem with mod_perl. Just ask this guy => http://lists.fsck.com/pipermail/rt-users/2002-September.txt. It's the exact same problem with the exact same error message, only in different clothing (he's having trouble with the Apache::Cookie object rather than the Apache::Request object). In the interest of full disclosure, other possible solutions include resetting /etc/ld.so.conf or the LD_LIBRARY_PATH variable to include more places to look for shared object files (only recently figured this out). But again, unless you're somewhat experienced or have encountered this class of bug before, this won't necessarily be the obvious place to look at first. Anyway enough of my babbling. Now that the answer is out there, hopefully it'll help out the poor souls who run into this issue in the future. Later, DeAngelo -Original Message- From: Ged Haywood [mailto:ged@;www2.jubileegroup.co.uk] Sent: Thursday, November 07, 2002 10:01 PM To: DeAngelo Lampkin Cc: mod_perl Mailing List Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED Hi there, On Thu, 7 Nov 2002, DeAngelo Lampkin wrote: > A file called libapreq.so.1 was located in /usr/local/lib > (should have been in /usr/lib) [snip] I ended up getting this thing: > > Syntax error on line 362 of /usr/local/apache/conf/httpd.conf: > Can't load >'/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Apache/Request/Request.so'\ > for module Apache::Request: libapreq.so.1: cannot open shared object file:\ > No such file or directory [snip] > > This isn't the most helpful error message in the world. Huh? It tells you EXACTLY what is wrong. 73, Ged.
RE: Can't locate object method "new" via package "Apache::Request"(via Mason)...SOLVED
Hi there, On Thu, 7 Nov 2002, DeAngelo Lampkin wrote: > A file called libapreq.so.1 was located in /usr/local/lib > (should have been in /usr/lib) [snip] I ended up getting this thing: > > Syntax error on line 362 of /usr/local/apache/conf/httpd.conf: > Can't load >'/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Apache/Request/Request.so'\ > for module Apache::Request: libapreq.so.1: cannot open shared object file:\ > No such file or directory [snip] > > This isn't the most helpful error message in the world. Huh? It tells you EXACTLY what is wrong. 73, Ged.
Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
> As a quick follow-up, the "PerlModule Apache::Request" line is NOT > needed in the httpd.conf file for Mason to work. However, it was a very > valuable debugging tool. That wasn't really the purpose, though. The purpose was to pre-load the module in the parent apache process for efficiency. My suggestion did come about because it appeared that Apache::Request wasn't being loaded at all. I'm not exacly sure how that happened as Mason's ApacheRequest attempts to require() Apache::Request a couple of places. But just the same, my suggestion to pre-load Apache::Request, as well as any other lib you normally use, stands. See: http://perl.apache.org/docs/1.0/guide/performance.html#Preloading_Perl_Modul es_at_Server_Startup Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ --
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
As a quick follow-up, the "PerlModule Apache::Request" line is NOT needed in the httpd.conf file for Mason to work. However, it was a very valuable debugging tool. -Original Message- From: DeAngelo Lampkin Sent: Thursday, November 07, 2002 11:21 AM To: Tim Tompkins; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED Thanks to Tim, Gareth, and Phillippe: OK, I'll start with the solution to the problem and then drag on a bit for how I found it. The problem was the location of a shared object file for the Apache Request object. A file called libapreq.so.1 was located in /usr/local/lib (should have been in /usr/lib), which was ok for the test script that Phillippe gave me and the one-liner that Gareth gave me, but was apparently NOT ok for Mason in the context of mod_perl. I didn't figure this out until I tried Tim's suggestion of preloading the Apache::Request module inside of httpd.conf. I ended up getting this thing: Syntax error on line 362 of /usr/local/apache/conf/httpd.conf: Can't load '/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Apache/Request/Request.so' for module Apache::Request: libapreq.so.1: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229. at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/mod_perl.pm line 14 Compilation failed in require at (eval 4) line 3. This isn't the most helpful error message in the world. However, I knew Request.so and libapreq.so.1 were installed, but I didn't know if they were in places that the server process expected them to be. So did a search for all the shared object files and noticed libapreq.so.1 file was sitting all by itself in /usr/local/lib, while about a billion other shared object files were inside of /usr/lib. I moved libapreq.so.1 to the place where all the other cool shared object files hung out, crossed my fingers, and booya! It worked. Apprently something about the way I configured the installation for libapreq was not very Mason friendly. Anyway, thanks again for the help. DeAngelo -Original Message- From: Tim Tompkins [mailto:timt@;arttoday.com] Sent: Thursday, November 07, 2002 10:16 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... You should pre-load Apache::Request anyway, PerlModule Apache::Request PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "Tim Tompkins" <[EMAIL PROTECTED]> To: "DeAngelo Lampkin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 11:08 AM Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... > Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, > anyway. > > > Regards, > > Tim Tompkins > -- > Programmer > http://www.clipart.com/ > http://www.rebelartist.com/ > ------ > ----- Original Message - > From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Thursday, November 07, 2002 10:54 AM > Subject: RE: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hi Gareth, > > I'm using the latest version of Mason, Mason 1.15. As I posted in my > previous email, I put the following lines into my httpd.conf file per the > instructions on Mason's website: > > PerlModule HTML::Mason::ApacheHandler > > SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > > The reason this wasn't posted on a Mason mailing list is that this didn't > seem like a Mason problem per se and the Mason mailing list page > specifically mentioned the Apache Request object (at least in part the > source of my problem)as being something that is not directly Mason > related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I > took the advice of the list moderator and posted on the mod_perl list > instead. > > Thanks! > > DeAngelo > > -Original Message- > From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] > Sent: Thursday, November 07, 2002 1:44 AM > To: DeAngelo Lampkin;
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...SOLVED
Thanks to Tim, Gareth, and Phillippe: OK, I'll start with the solution to the problem and then drag on a bit for how I found it. The problem was the location of a shared object file for the Apache Request object. A file called libapreq.so.1 was located in /usr/local/lib (should have been in /usr/lib), which was ok for the test script that Phillippe gave me and the one-liner that Gareth gave me, but was apparently NOT ok for Mason in the context of mod_perl. I didn't figure this out until I tried Tim's suggestion of preloading the Apache::Request module inside of httpd.conf. I ended up getting this thing: Syntax error on line 362 of /usr/local/apache/conf/httpd.conf: Can't load '/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/auto/Apache/Request/Request.so' for module Apache::Request: libapreq.so.1: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229. at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/mod_perl.pm line 14 Compilation failed in require at (eval 4) line 3. This isn't the most helpful error message in the world. However, I knew Request.so and libapreq.so.1 were installed, but I didn't know if they were in places that the server process expected them to be. So did a search for all the shared object files and noticed libapreq.so.1 file was sitting all by itself in /usr/local/lib, while about a billion other shared object files were inside of /usr/lib. I moved libapreq.so.1 to the place where all the other cool shared object files hung out, crossed my fingers, and booya! It worked. Apprently something about the way I configured the installation for libapreq was not very Mason friendly. Anyway, thanks again for the help. DeAngelo -Original Message- From: Tim Tompkins [mailto:timt@;arttoday.com] Sent: Thursday, November 07, 2002 10:16 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... You should pre-load Apache::Request anyway, PerlModule Apache::Request PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "Tim Tompkins" <[EMAIL PROTECTED]> To: "DeAngelo Lampkin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 11:08 AM Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... > Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, > anyway. > > > Regards, > > Tim Tompkins > -- > Programmer > http://www.clipart.com/ > http://www.rebelartist.com/ > -- > - Original Message - > From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Thursday, November 07, 2002 10:54 AM > Subject: RE: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hi Gareth, > > I'm using the latest version of Mason, Mason 1.15. As I posted in my > previous email, I put the following lines into my httpd.conf file per the > instructions on Mason's website: > > PerlModule HTML::Mason::ApacheHandler > > SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > > The reason this wasn't posted on a Mason mailing list is that this didn't > seem like a Mason problem per se and the Mason mailing list page > specifically mentioned the Apache Request object (at least in part the > source of my problem)as being something that is not directly Mason > related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I > took the advice of the list moderator and posted on the mod_perl list > instead. > > Thanks! > > DeAngelo > > -Original Message- > From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] > Sent: Thursday, November 07, 2002 1:44 AM > To: DeAngelo Lampkin; [EMAIL PROTECTED] > Subject: RE: Can't locate object method "new" via package > "Apache::Request" (via Mason)... > > > You need to set Mason up better - probably. > > I'm an avid Mason user, and I've seen this a fair few times. > If you want help, you're most likely to get it on the > [EMAIL PROTECTED] list. > However if you want to tell me the version
Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Sure I did. I was just keeping my response to the context of his present configuration according to the sample he sent. Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "Gareth Kirwan" <[EMAIL PROTECTED]> To: "Tim Tompkins" <[EMAIL PROTECTED]>; "DeAngelo Lampkin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 11:20 AM Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... > Tim - Did you not get the 18:06 email of mine ? > > It uses a handler instead. > > So he wouldn't be using this method anyway - if he decided to follow my > suggestion. > > > By the way - i'm new to this list - :-) > > Gareth >
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Tim - Did you not get the 18:06 email of mine ? It uses a handler instead. So he wouldn't be using this method anyway - if he decided to follow my suggestion. By the way - i'm new to this list - :-) Gareth -Original Message- From: Tim Tompkins [mailto:timt@;arttoday.com] Sent: 07 November 2002 18:16 To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... You should pre-load Apache::Request anyway, PerlModule Apache::Request PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "Tim Tompkins" <[EMAIL PROTECTED]> To: "DeAngelo Lampkin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 11:08 AM Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... > Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, > anyway. > > > Regards, > > Tim Tompkins > -- > Programmer > http://www.clipart.com/ > http://www.rebelartist.com/ > -- > - Original Message - > From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Thursday, November 07, 2002 10:54 AM > Subject: RE: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hi Gareth, > > I'm using the latest version of Mason, Mason 1.15. As I posted in my > previous email, I put the following lines into my httpd.conf file per the > instructions on Mason's website: > > PerlModule HTML::Mason::ApacheHandler > > SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > > The reason this wasn't posted on a Mason mailing list is that this didn't > seem like a Mason problem per se and the Mason mailing list page > specifically mentioned the Apache Request object (at least in part the > source of my problem)as being something that is not directly Mason > related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I > took the advice of the list moderator and posted on the mod_perl list > instead. > > Thanks! > > DeAngelo > > -Original Message- > From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] > Sent: Thursday, November 07, 2002 1:44 AM > To: DeAngelo Lampkin; [EMAIL PROTECTED] > Subject: RE: Can't locate object method "new" via package > "Apache::Request" (via Mason)... > > > You need to set Mason up better - probably. > > I'm an avid Mason user, and I've seen this a fair few times. > If you want help, you're most likely to get it on the > [EMAIL PROTECTED] list. > However if you want to tell me the version of mason you're using it might > help. > > You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new > Lexer / Compiller components. > > There should be a require statement in your httpd.conf. > This gives you better control over data structures, variable scopes, and an > opportunity to handle persistent database connections better in the handler. > > Check out the information on http://www.masonhq.com > > Hope this helps. > > Gareth > > -Original Message- > From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] > Sent: 06 November 2002 23:25 > To: [EMAIL PROTECTED] > Subject: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hey guys, > > You may remember me from such messages as "I can't get mod_perl to compile > on Irix64 systems!". Well now I've got a whole new problem that I need your > expertise on. > > I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, > whenever I go to a page that should be handled by Mason (a perl templating > system), I get the following error message: > > "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via > package "Apache::Request" at > /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." > > > My guess is that this (at some level)i
Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...
You should pre-load Apache::Request anyway, PerlModule Apache::Request PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "Tim Tompkins" <[EMAIL PROTECTED]> To: "DeAngelo Lampkin" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 11:08 AM Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... > Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, > anyway. > > > Regards, > > Tim Tompkins > -- > Programmer > http://www.clipart.com/ > http://www.rebelartist.com/ > -- > - Original Message - > From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> > Sent: Thursday, November 07, 2002 10:54 AM > Subject: RE: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hi Gareth, > > I'm using the latest version of Mason, Mason 1.15. As I posted in my > previous email, I put the following lines into my httpd.conf file per the > instructions on Mason's website: > > PerlModule HTML::Mason::ApacheHandler > > SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > > The reason this wasn't posted on a Mason mailing list is that this didn't > seem like a Mason problem per se and the Mason mailing list page > specifically mentioned the Apache Request object (at least in part the > source of my problem)as being something that is not directly Mason > related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I > took the advice of the list moderator and posted on the mod_perl list > instead. > > Thanks! > > DeAngelo > > -Original Message- > From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] > Sent: Thursday, November 07, 2002 1:44 AM > To: DeAngelo Lampkin; [EMAIL PROTECTED] > Subject: RE: Can't locate object method "new" via package > "Apache::Request" (via Mason)... > > > You need to set Mason up better - probably. > > I'm an avid Mason user, and I've seen this a fair few times. > If you want help, you're most likely to get it on the > [EMAIL PROTECTED] list. > However if you want to tell me the version of mason you're using it might > help. > > You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new > Lexer / Compiller components. > > There should be a require statement in your httpd.conf. > This gives you better control over data structures, variable scopes, and an > opportunity to handle persistent database connections better in the handler. > > Check out the information on http://www.masonhq.com > > Hope this helps. > > Gareth > > -Original Message- > From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] > Sent: 06 November 2002 23:25 > To: [EMAIL PROTECTED] > Subject: Can't locate object method "new" via package "Apache::Request" > (via Mason)... > > > Hey guys, > > You may remember me from such messages as "I can't get mod_perl to compile > on Irix64 systems!". Well now I've got a whole new problem that I need your > expertise on. > > I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, > whenever I go to a page that should be handled by Mason (a perl templating > system), I get the following error message: > > "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via > package "Apache::Request" at > /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." > > > My guess is that this (at some level)involves a configuration error of some > kind. I added the following lines to my httpd.conf file per the > instructions on Mason's website: > > --- > PerlModule HTML::Mason::ApacheHandler > > SetHandler perl-script > PerlHandler HTML::Mason::ApacheHandler > > - > > So I'm not sure what's going on here. I looked through Apache/Request.pm > and found no "new" method and I didn't find one inside of Apache.pm either > (from which the Request module inherets). However, I'm assuming this is all > correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is > going on somewhere. > > > Does anyone have any ideas about what may be causing this? > > > Thanks, > DeAngelo > > >
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Tim - You're quite right - I should have noticed the reference to 5.8.0 in the @INC file. I didn't /think/ 5.8.0 was stable ?! Am I being stupid ? Either way: perl -e 'use Apache::Request || die $!;' from the command line should tell you if you have Apache::Request installed. If you don't perl -MCPAN -e 'install Apache::Request' You're extremely likely to get more dependencies than you can shake a big stick at - but oh Well. You may also have a hell of a lot of questions - if you've never used cpan before... but let's hope you have ! :-) Good thinking, Batman @ Tim ;-) Gareth -Original Message- From: Tim Tompkins [mailto:timt@;arttoday.com] Sent: 07 November 2002 18:08 To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: Re: Can't locate object method "new" via package "Apache::Request" (via Mason)... Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, anyway. Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 10:54 AM Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hi Gareth, I'm using the latest version of Mason, Mason 1.15. As I posted in my previous email, I put the following lines into my httpd.conf file per the instructions on Mason's website: PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler The reason this wasn't posted on a Mason mailing list is that this didn't seem like a Mason problem per se and the Mason mailing list page specifically mentioned the Apache Request object (at least in part the source of my problem)as being something that is not directly Mason related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I took the advice of the list moderator and posted on the mod_perl list instead. Thanks! DeAngelo -Original Message----- From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] Sent: Thursday, November 07, 2002 1:44 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... You need to set Mason up better - probably. I'm an avid Mason user, and I've seen this a fair few times. If you want help, you're most likely to get it on the [EMAIL PROTECTED] list. However if you want to tell me the version of mason you're using it might help. You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new Lexer / Compiller components. There should be a require statement in your httpd.conf. This gives you better control over data structures, variable scopes, and an opportunity to handle persistent database connections better in the handler. Check out the information on http://www.masonhq.com Hope this helps. Gareth -----Original Message- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 06 November 2002 23:25 To: [EMAIL PROTECTED] Subject: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apache::Request" at /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." My guess is that this (at some level)involves a configuration error of some kind. I added the following lines to my httpd.conf file per the instructions on Mason's website: --- PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler - So I'm not sure what's going on here. I looked through Apache/Request.pm and found no "new" method and I didn't find one inside of Apache.pm either (from which the Request module inherets). However, I'm assuming this is all correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is going on somewhere. Does anyone have any ideas about what may be causing this? Thanks, DeAngelo
Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Is Apache::Request installed for perl 5.8.0? Sounds like it's not loaded, anyway. Regards, Tim Tompkins -- Programmer http://www.clipart.com/ http://www.rebelartist.com/ -- - Original Message - From: "DeAngelo Lampkin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Thursday, November 07, 2002 10:54 AM Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hi Gareth, I'm using the latest version of Mason, Mason 1.15. As I posted in my previous email, I put the following lines into my httpd.conf file per the instructions on Mason's website: PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler The reason this wasn't posted on a Mason mailing list is that this didn't seem like a Mason problem per se and the Mason mailing list page specifically mentioned the Apache Request object (at least in part the source of my problem)as being something that is not directly Mason related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I took the advice of the list moderator and posted on the mod_perl list instead. Thanks! DeAngelo -Original Message- From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] Sent: Thursday, November 07, 2002 1:44 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... You need to set Mason up better - probably. I'm an avid Mason user, and I've seen this a fair few times. If you want help, you're most likely to get it on the [EMAIL PROTECTED] list. However if you want to tell me the version of mason you're using it might help. You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new Lexer / Compiller components. There should be a require statement in your httpd.conf. This gives you better control over data structures, variable scopes, and an opportunity to handle persistent database connections better in the handler. Check out the information on http://www.masonhq.com Hope this helps. Gareth -Original Message----- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 06 November 2002 23:25 To: [EMAIL PROTECTED] Subject: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apache::Request" at /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." My guess is that this (at some level)involves a configuration error of some kind. I added the following lines to my httpd.conf file per the instructions on Mason's website: --- PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler - So I'm not sure what's going on here. I looked through Apache/Request.pm and found no "new" method and I didn't find one inside of Apache.pm either (from which the Request module inherets). However, I'm assuming this is all correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is going on somewhere. Does anyone have any ideas about what may be causing this? Thanks, DeAngelo
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...
What version of perl ? Post 1.12 Mason has problems with perl 5.6.0 I believe ( or maybe .1 as well ) You're quite right about the problem not necessarily being a mason one. However as a mason user - you're likely to get help there all the same on things that are border line mason ( the new Request object is created IN ApacheHanler.pm ) Try this: Change your httpd.conf to use a mason-handler. Create a mason-handler.pl in either your @INC or your apache root. I put mine in the later ( /etc/httpd/ on my system ). Make sure the ownership / permissions of the mason-handler allow execution ( chmod +x if you must ) httpd.conf - PerlRequire mason-handler.pl SetHandler perl-script PerlHandler HTML::Mason mason-handler.pl - package HTML::Mason; use HTML::Mason; use HTML::Mason::ApacheHandler(); use strict; my $ah = new HTML::Mason::ApacheHandler ( comp_root=>'/var/virtual/www.mason-site.com/' data_dir=>'/var/virtual/HTML-Mason/data' ); chown ( 99, 99, $ah->interp->files_written ); { package HTML::Mason::Commands; use HTML::Entities; use vars qw($global1 $global2 $global3); $_escape = sub { my $text = join '', @_; HTML::Mason::Escapes::basic_html_escape(\$text); return $text } } 1; sub handler { my ($r) = @_; return -1 if $r->content_type && $r->content_type =~ m|^image/|i; $ah->handle_request($r); } == That's akin to what we use. Obviously change the /var/virtual to whatever you use as your root - and HTML-Mason is just where I wanted to keep our data for cache and stuff. The $globals are just examples. Once you've done this - let me know if you still get the same problem. Remember to keep copies of all files you change. I'd advice RCS/CVS ( i use the former ) for things like httpd.conf if you want to keep it tidy. Regards Gareth -Original Message- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 07 November 2002 17:54 To: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hi Gareth, I'm using the latest version of Mason, Mason 1.15. As I posted in my previous email, I put the following lines into my httpd.conf file per the instructions on Mason's website: PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler The reason this wasn't posted on a Mason mailing list is that this didn't seem like a Mason problem per se and the Mason mailing list page specifically mentioned the Apache Request object (at least in part the source of my problem)as being something that is not directly Mason related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I took the advice of the list moderator and posted on the mod_perl list instead. Thanks! DeAngelo -Original Message- From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] Sent: Thursday, November 07, 2002 1:44 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... You need to set Mason up better - probably. I'm an avid Mason user, and I've seen this a fair few times. If you want help, you're most likely to get it on the [EMAIL PROTECTED] list. However if you want to tell me the version of mason you're using it might help. You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new Lexer / Compiller components. There should be a require statement in your httpd.conf. This gives you better control over data structures, variable scopes, and an opportunity to handle persistent database connections better in the handler. Check out the information on http://www.masonhq.com Hope this helps. Gareth -----Original Message- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 06 November 2002 23:25 To: [EMAIL PROTECTED] Subject: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apach
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Hi Gareth, I'm using the latest version of Mason, Mason 1.15. As I posted in my previous email, I put the following lines into my httpd.conf file per the instructions on Mason's website: PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler The reason this wasn't posted on a Mason mailing list is that this didn't seem like a Mason problem per se and the Mason mailing list page specifically mentioned the Apache Request object (at least in part the source of my problem)as being something that is not directly Mason related( http://lists.sourceforge.net/lists/listinfo/mason-users ). So I took the advice of the list moderator and posted on the mod_perl list instead. Thanks! DeAngelo -Original Message- From: Gareth Kirwan [mailto:gbjk@;thermeoneurope.com] Sent: Thursday, November 07, 2002 1:44 AM To: DeAngelo Lampkin; [EMAIL PROTECTED] Subject: RE: Can't locate object method "new" via package "Apache::Request" (via Mason)... You need to set Mason up better - probably. I'm an avid Mason user, and I've seen this a fair few times. If you want help, you're most likely to get it on the [EMAIL PROTECTED] list. However if you want to tell me the version of mason you're using it might help. You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new Lexer / Compiller components. There should be a require statement in your httpd.conf. This gives you better control over data structures, variable scopes, and an opportunity to handle persistent database connections better in the handler. Check out the information on http://www.masonhq.com Hope this helps. Gareth -Original Message- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 06 November 2002 23:25 To: [EMAIL PROTECTED] Subject: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apache::Request" at /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." My guess is that this (at some level)involves a configuration error of some kind. I added the following lines to my httpd.conf file per the instructions on Mason's website: --- PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler - So I'm not sure what's going on here. I looked through Apache/Request.pm and found no "new" method and I didn't find one inside of Apache.pm either (from which the Request module inherets). However, I'm assuming this is all correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is going on somewhere. Does anyone have any ideas about what may be causing this? Thanks, DeAngelo
RE: Can't locate object method "new" via package "Apache::Request" (via Mason)...
You need to set Mason up better - probably. I'm an avid Mason user, and I've seen this a fair few times. If you want help, you're most likely to get it on the [EMAIL PROTECTED] list. However if you want to tell me the version of mason you're using it might help. You could use a mason-handler.pl with Mason 1.12 ( or 1.15) and the new Lexer / Compiller components. There should be a require statement in your httpd.conf. This gives you better control over data structures, variable scopes, and an opportunity to handle persistent database connections better in the handler. Check out the information on http://www.masonhq.com Hope this helps. Gareth -Original Message- From: DeAngelo Lampkin [mailto:dlampkin@;xencor.com] Sent: 06 November 2002 23:25 To: [EMAIL PROTECTED] Subject: Can't locate object method "new" via package "Apache::Request" (via Mason)... Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apache::Request" at /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." My guess is that this (at some level)involves a configuration error of some kind. I added the following lines to my httpd.conf file per the instructions on Mason's website: --- PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler - So I'm not sure what's going on here. I looked through Apache/Request.pm and found no "new" method and I didn't find one inside of Apache.pm either (from which the Request module inherets). However, I'm assuming this is all correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is going on somewhere. Does anyone have any ideas about what may be causing this? Thanks, DeAngelo
Re: Can't locate object method "new" via package "Apache::Request" (via Mason)...
Seems somewhat similar to a bug I've reported 10 months ago. You might want to try to run the minimal testcase enclosed in the forwarded mail. Phil. --- Begin Message --- I've found that mod_perl can get confused when dealing with method calls during a redirect_internal phase: 1. page /1 uses method calls, and works when accessed as /1 2. an other page /R uses internal_redirect to go to /1, and mod_perl fails with an undefined subroutine error. This has been seen on: apache 1.3.9-14, perl 5.004.05-1.1, and mod_perl 1.25-3 (Debian "potato") and on: apache 1.3.22-2.1, perl 5.6.1-6, and mod_perl 1.26-1 (Debian "woody"/testing) How to reproduce: Use this startup.pl file: == # Common package Common; use Apache::Constants qw(:common); sub handler($$) { my $self = shift; my $req = shift; $req->content_type('text/plain'); $req->send_http_header(); $req->print($self->doit()); return OK; } sub doit { return "COMMON"; } # Common::Impl1 package Common::Impl1; @ISA=qw(Common); sub doit { return "IMPL1\n"; } # Common::Impl2; package Common::Impl2; @ISA=qw(Common); sub doit { return "IMPL2\n"; } # Redir package Redir; use Apache::Constants qw(:common); sub handler { my $req = shift; $req->internal_redirect("/1"); return OK; } 1; == PerlRequire the above, and use the following apache configuration: == Order allow,deny Allow from all SetHandler perl-script PerlHandler Common Order allow,deny Allow from all SetHandler perl-script PerlHandler Common::Impl1 Order allow,deny Allow from all SetHandler perl-script PerlHandler Common::Impl2 Order allow,deny Allow from all SetHandler perl-script PerlHandler Redir PerlRequire startup.pl == Then, directing a web browser to /0 prints COMMON, to /1 prints IMPL1, to /2 prints IMPL2, as expectected. Similarly, when pointing to /R (which redirects internally to /1), IMPL1 should appear. However, I get a 500 Internal server error and this in the logs: [error] Undefined subroutine &Common::Impl1::handler called at startup.pl line 49. I've tried to debug the problem, and the problem lies inside perl_handler_ismethod() in src/modules/perl/mod_perl.c: it returns different values when called from inside the internal_redirect than called without internal_redirect. Inside perl_handler_ismethod(): if(!sub) return 0; sv = newSVpv(sub,0); if(!(cv = sv_2cv(sv, &stash, &gv, FALSE))) { GV *gvp = gv_fetchmethod(pclass, sub); if (gvp) cv = GvCV(gvp); sv_2cv() returns different values when called from inside an internal_redirect than called without internal_redirect. Unfortunately, I could not grok sv_2cv(). It's not even documented in the perl docs. Phil. --- End Message ---
Can't locate object method "new" via package "Apache::Request" (via Mason)...
Hey guys, You may remember me from such messages as "I can't get mod_perl to compile on Irix64 systems!". Well now I've got a whole new problem that I need your expertise on. I'm running Apache 1.3x and mod_perl 1.2x on a Linux system. However, whenever I go to a page that should be handled by Mason (a perl templating system), I get the following error message: "[Wed Nov 6 11:56:20 2002] [error] Can't locate object method "new" via package "Apache::Request" at /usr/lib/perl5/site_perl/5.8.0/HTML/Mason/ApacheHandler.pm line 878." My guess is that this (at some level)involves a configuration error of some kind. I added the following lines to my httpd.conf file per the instructions on Mason's website: --- PerlModule HTML::Mason::ApacheHandler SetHandler perl-script PerlHandler HTML::Mason::ApacheHandler - So I'm not sure what's going on here. I looked through Apache/Request.pm and found no "new" method and I didn't find one inside of Apache.pm either (from which the Request module inherets). However, I'm assuming this is all correct and some magical ultra-Perl-guru AUTOLOAD-like functionality is going on somewhere. Does anyone have any ideas about what may be causing this? Thanks, DeAngelo