[Catalyst] Local action in controller not mapping to template (retry)

Anne Brown lovallama at gmail.com
Mon Apr 20 13:42:16 GMT 2009


t0m,


My development environment is a Windoze VISTA 64-bit OS, running Apache 
2.2.11, 
and perl 5.8.8 and plain old CGI.   My other development environment is the
same except for a Linux OS and is having the same problem.  


You said that :Private makes an action not dispatchable, however, the line:


     sub index : Private {}

 
in my root controller renders the main template.  The same line in
SomeController.pm maps to the index page for that controller.  As well, a
local action in my root controller maps to it's same named template.  I had
thought that the RenderView action class in the methods of my controllers
would mean that I need not forward anything in the immediate action method? 
In this case, isn't :Private dispatchable?  I'm very new to this and am just
trying to follow the tutorials, so please bear with me. 


You asked if everything is working correctly.  I'm fairly certain of that
because my main template page is rendered correctly.  My SomeController.pm's
index page is also ok as well.  That makes me think that apache and
everything else is working as it should.


My question is, why does my :Local action in Root.pm work, whereas my :Local
action in SomeController.pm produces an error?


Below is SomeController.pm



package TestApp::Controller::SomeController;

use strict;
use warnings;
use base 'Catalyst::Controller';

sub index : Private {}
sub something : Local {}

sub end : ActionClass('RenderView') {}

1;


Here's what it looks like to me, according to the apache log.  The Root.pm
and SomeController.pm index actions are mapping correctly to their
appropriate templates, located in the areas designated by the INCLUDE_PATHs
in TT.pm.  The Root.pm :Local action is also locating the appropriate
template.  However, when the :Local action in SomeController.pm is
requested, it is not being mapped to its template but instead, the
application is trying to serve something from the root server directory
instead of to where the template file is located.


I've recreated the entire web application several times and but the same
thing is happening.


Here is the apache log, with the timestamp info replaced with "[TS]"



[TS1] [Mon Apr 20 08:54:21 2009] Action.pm: Useless localization of
subroutine entry at C:/perl/site/lib/Catalyst/Action.pm line 41., referer:
http://webapp.thing/somecontroller
[TS1] [debug] Debug messages enabled, referer:
http://webapp.thing/somecontroller
[TS1] [debug] Statistics enabled, referer:
http://webapp.thing/somecontroller
[TS1] [debug] Loaded plugins:, referer: http://webapp.thing/somecontroller
[TS1]
.----------------------------------------------------------------------------.,
referer: http://webapp.thing/somecontroller
[TS1] | Catalyst::Plugin::ConfigLoader  0.19                                      
|, referer: http://webapp.thing/somecontroller
[TS1] | Catalyst::Plugin::Static::Simple  0.20                                    
|, referer: http://webapp.thing/somecontroller
[TS1]
'----------------------------------------------------------------------------',
referer: http://webapp.thing/somecontroller
[TS1] , referer: http://webapp.thing/somecontroller
[TS1] [debug] Loaded dispatcher "Catalyst::Dispatcher", referer:
http://webapp.thing/somecontroller
[TS1] [debug] Loaded engine "Catalyst::Engine::CGI", referer:
http://webapp.thing/somecontroller
[TS1] [debug] Found home "C:\\webs\\webapp\\www\\TestApp", referer:
http://webapp.thing/somecontroller
[TS1] [debug] Loaded Config "C:\\webs\\webapp\\www\\TestApp\\testapp.yml",
referer: http://webapp.thing/somecontroller
[TS1] [debug] Loaded components:, referer:
http://webapp.thing/somecontroller
[TS1]
.-----------------------------------------------------------------+----------.,
referer: http://webapp.thing/somecontroller
[TS1] | Class                                                           |
Type     |, referer: http://webapp.thing/somecontroller
[TS1]
+-----------------------------------------------------------------+----------+,
referer: http://webapp.thing/somecontroller
[TS1] | TestApp::Controller::Root                                       |
instance |, referer: http://webapp.thing/somecontroller
[TS1] | TestApp::Controller::SomeController                             |
instance |, referer: http://webapp.thing/somecontroller
[TS1] | TestApp::View::TT                                               |
instance |, referer: http://webapp.thing/somecontroller
[TS1]
'-----------------------------------------------------------------+----------',
referer: http://webapp.thing/somecontroller
[TS1] , referer: http://webapp.thing/somecontroller
[TS1] [debug] Loaded Private actions:, referer:
http://webapp.thing/somecontroller
[TS1]
.----------------------+--------------------------------------+--------------.,
referer: http://webapp.thing/somecontroller
[TS1] | Private              | Class                                | Method      
|, referer: http://webapp.thing/somecontroller
[TS1]
+----------------------+--------------------------------------+--------------+,
referer: http://webapp.thing/somecontroller
[TS1] | /end                 | TestApp::Controller::Root            | end         
|, referer: http://webapp.thing/somecontroller
[TS1] | /reply               | TestApp::Controller::Root            | reply       
|, referer: http://webapp.thing/somecontroller
[TS1] | /index               | TestApp::Controller::Root            | index       
|, referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/end  | TestApp::Controller::SomeController  | end         
|, referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/ind- | TestApp::Controller::SomeController  | index       
|, referer: http://webapp.thing/somecontroller
[TS1] | ex                   |                                      |             
|, referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/som- | TestApp::Controller::SomeController  |
something    |, referer: http://webapp.thing/somecontroller
[TS1] | ething               |                                      |             
|, referer: http://webapp.thing/somecontroller
[TS1]
'----------------------+--------------------------------------+--------------',
referer: http://webapp.thing/somecontroller
[TS1] , referer: http://webapp.thing/somecontroller
[TS1] [debug] Loaded Path actions:, referer:
http://webapp.thing/somecontroller
[TS1]
.-------------------------------------+--------------------------------------.,
referer: http://webapp.thing/somecontroller
[TS1] | Path                                | Private                             
|, referer: http://webapp.thing/somecontroller
[TS1]
+-------------------------------------+--------------------------------------+,
referer: http://webapp.thing/somecontroller
[TS1] | /reply                              | /reply                              
|, referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/something           | /somecontroller/something           
|, referer: http://webapp.thing/somecontroller
[TS1]
'-------------------------------------+--------------------------------------',
referer: http://webapp.thing/somecontroller
[TS1] , referer: http://webapp.thing/somecontroller
[TS1] [info] TestApp powered by Catalyst 5.7012, referer:
http://webapp.thing/somecontroller
[TS1] [Mon Apr 20 08:54:21 2009] NEXT.pm: Name "Catalyst::View::new" used
only once: possible typo at C:/perl/lib/NEXT.pm line 58., referer:
http://webapp.thing/somecontroller
[TS1] [Mon Apr 20 08:54:21 2009] NEXT.pm: Name
"Catalyst::AttrContainer::setup" used only once: possible typo at
C:/perl/lib/NEXT.pm line 58., referer: http://webapp.thing/somecontroller
[TS1] [Mon Apr 20 08:54:21 2009] NEXT.pm: Name "Catalyst::Controller::setup"
used only once: possible typo at C:/perl/lib/NEXT.pm line 58., referer:
http://webapp.thing/somecontroller
[TS1] [info] *** Request 1 (1.000/s) [8052] [Mon Apr 20 08:54:21 2009] ***,
referer: http://webapp.thing/somecontroller
[TS1] [debug] "GET" request for "somecontroller" from "127.0.0.1", referer:
http://webapp.thing/somecontroller
[TS1] [debug] Path is "somecontroller", referer:
http://webapp.thing/somecontroller
[TS1] [debug] Rendering template "somecontroller/index", referer:
http://webapp.thing/somecontroller
[TS1] [info] Request took 0.096711s (10.340/s), referer:
http://webapp.thing/somecontroller
[TS1]
.----------------------------------------------------------------+-----------.,
referer: http://webapp.thing/somecontroller
[TS1] | Action                                                         |
Time      |, referer: http://webapp.thing/somecontroller
[TS1]
+----------------------------------------------------------------+-----------+,
referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/index                                          |
0.000155s |, referer: http://webapp.thing/somecontroller
[TS1] | /somecontroller/end                                            |
0.089485s |, referer: http://webapp.thing/somecontroller
[TS1] |  -> TestApp::View::TT->process                                 |
0.087695s |, referer: http://webapp.thing/somecontroller
[TS1]
'----------------------------------------------------------------+-----------',
referer: http://webapp.thing/somecontroller
[TS1] , referer: http://webapp.thing/somecontroller
[TS2] File does not exist: C:/webs/webapp/www/somecontroller, referer:
http://webapp.thing/somecontroller

The server document root is:

    C:/webs/webapp/www
The template directories are:

    C:/webs/webapp/www/TestApp/root/src
    C:/webs/webapp/www/TestApp/root/lib
The template files are:

    C:/webs/webapp/www/TestApp/root/src/index
    C:/webs/webapp/www/TestApp/root/src/something # root's :Local action
    C:/webs/webapp/www/TestApp/root/src/somecontroller/index
    C:/webs/webapp/www/TestApp/root/src/somecontroller/something # not being
mapped correctly

Any ideas?

Anne

-- 
View this message in context: http://www.nabble.com/Local-action-in-controller-not-mapping-to-template-%28retry%29-tp23123769p23136898.html
Sent from the Catalyst Web Framework mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20090420/527d613c/attachment.htm


More information about the Catalyst mailing list