Hello,

I'm a Catalyst newbie stuck on the tutorial with following problem. In the Users.pm file, the login function fails, as the call to $c->login() gets the following error:

[Thu Jun 22 15:57:00 2006] [catalyst] [error] Caught exception "Can't locate object method "login" via package "tutorial" at /home/peter/public_html/tutorial/script/../lib/tutorial/Controller/Users.pm line 82."

This would normally imply that I'm missing modules, however, I have installed all the necessary plugins through CPAN (as far as I can tell). One possible cause, but I don't think it is normally an issue, is that the Catalyst plugins on my machine (running Ubuntu 'dapper drake'), are in two directories. One directory (/usr/share/perl5/Catalyst/) has a few plugins provided by Ubuntu's apt repository. The other directory (/usr/local/share/perl/5.8.7/Catalyst/) has the new plugins installed with CPAN. Both directories are in @INC when printed from the tutorial app. I tried copying the CPAN installed plugins (Authentication::Credential::Password, Authentication::Simple, etc.) to the Ubuntu perl dir, but it made no difference. I did restart the test server on each change.

At this point, I'm not quite sure what else to do to get the app to see Authentication::Credential::Password which apparently provides the 'login' method. A search of Google and the list archives hasn't turned up anyone with the same problem. Any suggestions/help would be greatly appreciated. Also, at the end of this email I've included a dump of my $c object from right before the login call fails. Many thanks.

Peter

_______________________

[Thu Jun 22 16:27:18 2006] [catalyst] [debug] **********************************
[Thu Jun 22 16:27:18 2006] [catalyst] [debug] * Request 1 (0.250/s) [16278]
[Thu Jun 22 16:27:18 2006] [catalyst] [debug] **********************************
[Thu Jun 22 16:27:18 2006] [catalyst] [debug] "GET" request for "users/login" from "192.168.1.11"
[Thu Jun 22 16:27:18 2006] [catalyst] [debug] Path is "users/login"
[Thu Jun 22 16:27:18 2006] [catalyst] [debug] $VAR1 = bless( {
                 'request' => bless( {
                                       'protocol' => 'HTTP/1.0',
                                       'headers' => bless( {
                                                             'accept-charset' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
                                                             'user-agent' => 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv: 1.8.0.4) Gecko/20060508 Firefox/1.5.0.4',
                                                             'connection' => 'keep-alive',
                                                             'keep-alive' => '300',
                                                             'accept' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
                                                             'accept-language' => 'en-us,en;q= 0.5',
                                                             'accept-encoding' => 'gzip,deflate',
                                                             'host' => ' 192.168.1.10:3000'
                                                           }, 'HTTP::Headers' ),
                                       '_context' => $VAR1,
                                       'snippets' => [],
                                       'body_parameters' => {},
                                       'secure' => 0,
                                       'hostname' => 'localhost',
                                       'uploads' => {},
                                       'user' => undef,
                                       '_body' => bless( {
                                                           'content_length' => 0,
                                                           'body' => undef,
                                                           'length' => 0,
                                                           'content_type' => undef,
                                                           'upload' => {},
                                                           'buffer' => '',
                                                           'param' => $VAR1->{'request'}{'body_parameters'},
                                                           'state' => 'buffering'
                                                         }, 'HTTP::Body::OctetStream' ),
                                       'method' => 'GET',
                                       'address' => ' 192.168.1.11',
                                       'base' => bless( do{\(my $o = 'http://192.168.1.10:3000/')}, 'URI::http' ),
                                       'cookies' => {},
                                       'match' => 'users/login',
                                       'path' => 'users/login',
                                       'uri' => bless( do{\(my $o = ' http://192.168.1.10:3000/users/login')}, 'URI::http' ),
                                       'query_parameters' => {},
                                       'parameters' => {},
                                       'action' => 'users/login',
                                       'arguments' => []
                                     }, 'Catalyst::Request' ),
                 'stash' => {
                              'template' => ' userlogin.tt'
                            },
                 'namespace' => 'users',
                 'stack' => [
                              bless( {
                                       'namespace' => 'users',
                                       'name' => '_DISPATCH',
                                       'class' => 'tutorial::Controller::Users',
                                       'attributes' => {
                                                         'Regex' => undef,
                                                         'LocalRegex' => undef,
                                                         'Regexp' => undef,
                                                         'Private' => [
                                                                        undef
                                                                      ],
                                                         'LocalRegexp' => undef
                                                       },
                                       'code' => sub { "DUMMY" },
                                       'reverse' => 'users/_DISPATCH'
                                     }, 'Catalyst::Action' ),
                              bless( {
                                       'namespace' => 'users',
                                       'name' => '_ACTION',
                                       'class' => 'tutorial::Controller::Users',
                                       'attributes' => {
                                                         'Regex' => undef,
                                                         'LocalRegex' => undef,
                                                         'Regexp' => undef,
                                                         'Private' => [
                                                                        undef
                                                                      ],
                                                         'LocalRegexp' => undef
                                                       },
                                       'code' => sub { "DUMMY" },
                                       'reverse' => 'users/_ACTION'
                                     }, 'Catalyst::Action' ),
                              bless( {
                                       'namespace' => 'users',
                                       'name' => 'login',
                                       'class' => 'tutorial::Controller::Users',
                                       'attributes' => {
                                                         'Regex' => undef,
                                                         'LocalRegex' => undef,
                                                         'Regexp' => undef,
                                                         'Local' => [
                                                                      undef
                                                                    ],
                                                         'LocalRegexp' => undef
                                                       },
                                       'code' => sub { "DUMMY" },
                                       'reverse' => 'users/login'
                                     }, 'Catalyst::Action' )
                            ],
                 'response' => bless( {
                                        'body' => '',
                                        'cookies' => {},
                                        'headers' => bless( {
                                                              'x-catalyst' => '5.61'
                                                            }, 'HTTP::Headers' ),
                                        '_context' => $VAR1,
                                        'status' => 200
                                      }, 'Catalyst::Response' ),
                 'stats' => [],
                 'state' => 0,
                 'action' => $VAR1->{'stack'}[2],
                 'counter' => {
                                'users/login' => 1,
                                'users/_AUTO' => 1,
                                'users/_DISPATCH' => 1,
                                'users/_ACTION' => 1,
                                'users/_BEGIN' => 1
                              }
               }, 'tutorial' );

[Thu Jun 22 16:27:18 2006] [catalyst] [debug] Rendering template " userlogin.tt"
[Thu Jun 22 16:27:19 2006] [catalyst] [error] Caught exception "Can't locate object method "login" via package "tutorial" at /home/peter/public_html/tutorial/script/../lib/tutorial/Controller/Users.pm line 82."
_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to