[Catalyst] Getting strange warning each time a request is made to myApp

kakimoto at tpg.com.au kakimoto at tpg.com.au
Sat Mar 14 01:52:50 GMT 2009


hi everyone,

  I tried googling and found that it's got somethign to do with
component resolution which has been refactored for Catalyst Runtime 5.8.

I am running Catalyst 5.71000 and my Catalyst::Action::RenderView     is
up to date (ie ver 0.09 ).

 Any ideas??
 I tried looking in my Root.pm and nothing found...

K. akimoto




Quoting kakimoto at tpg.com.au:

> Hi, everyone,
> 
> 
>  I  went into my MyApp::Controller::Login->index method and made
> some
> changes.
> I noticed that upon successful login of the current user, I will do
> a
> redirect to the base path '/' (ie. www.insurance-example.com:3000/).
> So
> in this case, i specified something like:
>   "$c->response->redirect( $c->uri_for('/') );"
> 
> 
>  This causes the warning to come up BUT  when I swap the '/' with a
> controller that exists, the warning goes away. So in this case, i
> specified something like:
>   "$c->response->redirect( $c->uri_for('/subscriptions/update') );"
> 
> 
>  Here is how my method looks like:
> 
> 
> --------------- MyApp::Controller::Login->index  [ start ]
> -------------------
> sub index : Private {
>     my ($self, $c) = @_;
>     $c->log->debug( " in login .pm " );
> 
>     # Get the username and password from form
>     my $username = $c->request->params->{username} || '';
>     my $password = $c->request->params->{password} || '';
> 
>     # If the username and password values were found in form
>     if ($username && $password) {
>         # Attempt to log the user in
> 
>         if ($c->login($username, $password))
>         {
>             # If successful, then let them use the application
>             #$c->response->redirect( $c->uri_for('/') );   ## GOT
> THE
> WARNING WITH THIS UNCOMMENTED
>     $c->log->debug( " Login is ok .... Redirecting now..." );
>             $c->response->redirect(
> $c->uri_for('/subscriptions/create')
> ); ## GOT NO WARNING WITH THIS ACTIVE AND THE LINE ABOVE COMMENTED
> ('/')
>             return;
>         }   
>         else
>         {   
>             # Set an error message
>             $c->stash->{error_msg} = "Bad username or password.";
>         }
>     }   
>             
>     # If either of above don't work out, send to the login page
>     $c->stash->{template} = 'login.tt2';
>     
>     return 1;
> }   
>     
> --------------- MyApp::Controller::Login->index  [end ]
> -------------------
> 
> 
> My question is, what's catalyst's problem? If i specified '/', then
> shouldn't MyApp::Controller::Root->default pick it up and serve what
> ever page is default?
> 
> 
> K. akimoto
> 
> 
> 
> 
> 
> Quoting kakimoto at tpg.com.au:
> 
> > 
> > Hi, everyone,
> > 
> >    I realised that my app's terminal console has been spitting out
> a
> > warning as per below each time I make a request to the app. This
> is
> > be
> > it to '/' or to a valid controller like 'subscriptions/create',
> > 'subscriptions/update',
> > 'subscriptions/delete', and so forth.
> > 
> > 
> > ----- extract START -------
> > 
> > [warn] Used regexp fallback for $c->model('myApp::View::HTML'),
> > which
> > found 'myApp::View::HTML=HASH(0x8ef7b50)'. Relying on regexp
> > fallback
> > behavior for component resolution is unreliable and unsafe. You
> > probably
> > meant $c->model('myApp::View::HTML=HASH(0x8ef7b50)') instead of
> > $c->model{'myApp::View::HTML'}, but if you really wanted to
> search,
> > pass
> > in a regexp as the argument like so:
> $c->model(qr/myApp::View::HTML/)
> > at
> > /usr/local/lib/perl5/site_perl/5.8.9/Catalyst/Action/RenderView.pm
> > line 56
> > [debug] Rendering template "index.tt2"
> > [debug] Applying HTML page layout wrappers to index.tt2
> > 
> > ----- extract END -------
> > 
> > Here are my loaded path actions:
> > 
> > 
> > ----- extract START -------
> > 
> > [debug] Loaded Path actions:
> >
>
.-------------------------------------+--------------------------------------.
> > | Path                                | Private                    
>  
> >  
> >      |
> >
>
+-------------------------------------+--------------------------------------+
> > | /                                   | /default                   
>  
> >  
> >      |
> > | /addresses                          | /addresses/index           
>  
> >  
> >      |
> > 
> >     ...
> > 
> >
>
'-------------------------------------+--------------------------------------'
> > 
> > 
> > ----- extract END -------
> > 
> > 
> > I went into myApp::Controller::Root->end.
> > 
> > It now reads,  "sub end : ActionClass('RenderView') {}".
> > 
> > If I removed the whole line and restarted the app and tried to
> > access
> > any controller, well, nothing will get shown (rendered) on the web
> > browser AND the warning dissappears. 
> > 
> > Just what am I doing wrong with the call to RenderView?
> > 
> > 
> > Thanks!
> > 
> > 
> > K. akimoto
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > List: Catalyst at lists.scsys.co.uk
> > Listinfo:
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> > Searchable archive:
> > http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> > Dev site: http://dev.catalyst.perl.org/
> > 
> > 
> > 
> 
> 
> 
> 
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive:
> http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
> 
> 
> 






More information about the Catalyst mailing list