[Catalyst] Apache2 problem
Alan Humphrey
alan.humphrey at comcast.net
Fri Jan 27 01:43:41 CET 2006
It looks like the question boils down to: Is an engine supposed to have a
request object? Tracing through the debugger we see:
Catalyst::prepare_connection(/usr/pkg/lib/perl5/site_perl/5.8.0/Catalyst.pm:
1391):
1391: $c->engine->prepare_connection( $c, @_ );
When we get to prepare_connection we see:
sub prepare_connection {
my $c = shift;
$c->request->address( $c->apache->connection->remote_ip );
DB<6> x ref($c)
0 'Catalyst::Engine::Apache::MP20'
Note that the $c that was passed in is ignored.
Sure enough, $c doesn't have a request method:
DB<7> m $c
prepare_body
prepare_parameters
prepare_request
prepare_uploads
via Catalyst::Engine::Apache::MP20::Base: finalize_headers
via Catalyst::Engine::Apache::MP20::Base: handler
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
_apache_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
apache
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
finalize_body
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
prepare_connection
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
prepare_headers
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
prepare_path
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base:
run
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: (""
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: ()
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: Dumper
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: _decode_entities
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: _read_length_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: _read_position_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: decode_entities
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: encode_entities
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: finalize_cookies
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: finalize_error
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: finalize_read
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: finalize_uploads
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_body_chunk
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_body_parameters
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_cookies
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_query_parameters
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_read
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: prepare_write
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: read
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: read_chunk
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: read_length
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: read_position
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine: write
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast: make_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast: make_ro_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast: make_wo_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast ->
Class::Accessor:_mk_accessors
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor: get
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor:
mk_accessors
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor:
mk_ro_accessors
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor:
mk_wo_accessors
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor: new
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine -> Class::Accessor::Fast -> Class::Accessor: set
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine::Apache: _return_accessor
via Catalyst::Engine::Apache::MP20::Base -> Catalyst::Engine::Apache::Base
-> Catalyst::Engine::Apache: return
via Catalyst::Engine::CGI: _env_accessor
via Catalyst::Engine::CGI: env
via UNIVERSAL: VERSION
via UNIVERSAL: can
via UNIVERSAL: import
via UNIVERSAL: isa
via UNIVERSAL: require
via UNIVERSAL: use
I started playing around with the prepare_connection method in Base.pm, but
quickly started digging a deeper hole. It looks like something upstream
might be screwing things up, so I thought I'd ask the question at the top:
is the Engine supposed to have a Request object?
- Alan
-----Original Message-----
From: catalyst-bounces at lists.rawmode.org
[mailto:catalyst-bounces at lists.rawmode.org] On Behalf Of Alan Humphrey
Sent: Thursday, January 26, 2006 2:11 PM
To: catalyst at lists.rawmode.org
Subject: [Catalyst] Apache2 problem
I'm getting the following error when I try to load a page under Apache
(2.0.54). I'm running Catalyst 5.62 and everything else *appears* to be up
to date.
Any ideas?
- Alan
[Thu Jan 26 13:58:43 2006] [catalyst] [error] Caught exception in engine
"Can't locate object method "request" via package
"Catalyst::Engine::Apache::MP20" at
/usr/pkg/lib/perl5/site_perl/5.8.0/Catalyst/Engine/Apache/Base.pm line 76,
<DATA> line 225."
Line 76 in Base.pm is in prepare_connection:
74 sub prepare_connection {
75 my $c = shift;
76 $c->request->address( $c->apache->connection->remote_ip );
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rawmode.org/pipermail/catalyst/attachments/20060126/5d1c157f/attachment-0001.htm
More information about the Catalyst
mailing list