perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From xyon <x...@indigorobot.com>
Subject Re: Custom Object-Oriented Module using HTML::Template
Date Thu, 13 Mar 2008 15:26:49 GMT
Thanks for the reply.

I thought as you did (that there were too many "Content-Type"
definitions), so commented out this line in the View.pm module, but that
doesn't seem to have changed anything:

'print "Content-Type: text/html\n\n";'




Here is the lwp command and output:
-------------------------------------------------------------------
$ lwp-request -e -S -s -U -m GET -Sed "http://localhost/admin/"
GET http://localhost/admin/
User-Agent: lwp-request/2.07

GET http://localhost/admin/ --> 200 OK
Connection: close
Date: Thu, 13 Mar 2008 15:24:23 GMT
Server: Apache
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Client-Date: Thu, 13 Mar 2008 15:24:23 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
-------------------------------------------------------------------


On Thu, 2008-03-13 at 16:11 +0100, André Warnier wrote:
> Hi.
> 
> First, a small disgression : along with perl, comes a beautiful test 
> tool for HTTP stuff, called "lwp-request".
> Like, at the command-line :
> lwp-request  (to see the options)
> lwp-request -m GET -Sed "http://myserver/myURL"
> (that will show you what you get as a response, without a browser 
> getting in the way)
> 
> Then, below, are you not now sending one "Content-type" too many ?
> It looks like you are doing it once in handler(), and once in mainpage().
> 
> André
> 
> xyon wrote:
> > That worked great with the test script ( print $template->output; ), but
> > unfortunately, I'm having trouble getting the display onto a web page
> > (via the Handler). The resulting web page is blank, with no source.
> > 
> > 
> > Below are my Apache configs for the handler, logs, and the handler and
> > view module's latest code. I've also included the test script code, just
> > in case there is some obvious reason it would work and the handler
> > won't.
> > 
> > 
> > 
> > 
> > Apache config:
> > ----------------------------------------------------
> > PerlRequire /etc/httpd/perl/startup.pl
> > <Location /admin>
> >     SetHandler modperl 
> >     PerlResponseHandler Myserver::Handler
> > </Location>
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > /etc/httpd/perl/startup.pl:
> > ----------------------------------------------------
> > use lib qw(/home/Perl/);
> > 1;
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > Apache log:
> > ----------------------------------------------------
> > ==> /var/log/httpd/error_log <==
> > ### HTML::Template Debug ### In _parse:
> > ### HTML::Template _param Stack Dump ###
> > 
> > $VAR1 = [
> >           \'<html><body bgcolor="#FF00FF">Test!</body></html>
> > '
> >         ];
> > 
> > ### HTML::Template Debug ### In output
> > ### HTML::Template output Stack Dump ###
> > 
> > $VAR1 = [
> >           \'<html><body bgcolor="#FF00FF">Test!</body></html>
> > '
> >         ];
> > 
> > 
> > ==> /var/log/httpd/ssl_request_log <==
> > [13/Mar/2008:10:48:38 -0400] 10.5.5.5 TLSv1 DHE-RSA-AES256-SHA
> > "GET /admin/ HTTP/1.1" -
> > 
> > ==> /var/log/httpd/ssl_access_log <==
> > 10.5.5.5 - - [13/Mar/2008:10:48:38 -0400] "GET /admin/ HTTP/1.1" 200 -
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > /home/Perl/Myserver/Handler.pm
> > ----------------------------------------------------
> > package Myserver::Handler;
> > 
> > #Setup some essentials
> > use strict;         #strict tolerance for code
> > use Carp;           #debugging
> > use diagnostics;    #more debugging
> > use warnings;       #more debugging
> > 
> > #Handler-related stuff
> > use Apache2::RequestRec ();
> > use Apache2::RequestIO ();
> > use Apache2::Const -compile => qw(OK);
> > 
> > sub handler {
> >     my $self        = shift;
> >     
> >     my $view        = Myserver::View->new();
> >     $view->mainpage;
> > 
> >     # Obligatory stuff for the handler
> >     $self->content_type('text/html');
> >     return Apache2::Const::OK;
> > 
> > }
> > 
> > 1;
> > 
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > /home/Perl/Myserver/View.pm:
> > ----------------------------------------------------
> > package Myserver::View;
> > 
> > #Setup some essentials
> > use strict;         #strict tolerance for code
> > use Carp;           #debugging
> > use diagnostics;    #more debugging
> > use warnings;       #more debugging
> > 
> > #Loadup some needed functions
> > use HTML::Template;
> > 
> > sub new {
> >     my $self        = shift;
> >     return $self;
> > }
> > 
> > sub mainpage {
> >     my $self        = shift;
> >     my $template    = HTML::Template->new(
> > 		filename => '/home/Perl/tmpl/mainpage.tmpl',
> >                 cache => 1,
> >                 debug => 1,
> >                 stack_debug => 1 );
> >     print "Content-Type: text/html\n\n";
> >     print $template->output;
> >     return $self;
> > }
> > 
> > 1;
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > /home/Perl/tmpl/mainpage.tmpl:
> > ----------------------------------------------------
> > <html><body bgcolor="#FF00FF">Test!</body></html>
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > /home/Perl/tests/View_mainpage.pl
> > ----------------------------------------------------
> > #!/usr/bin/perl -w
> > 
> > # Test printing of the main page
> > print "Main Page..";
> > 
> > #Let's load the view module
> > use lib "../";
> > use Myserver::View;
> > #Now let's load some things that are very handy
> > use strict;         #strict tolerance for code
> > use Carp;           #debugging
> > use warnings;       #more debugging
> > use diagnostics;    #even more debugging
> > 
> > # Let's create an object
> > my $view        = Myserver::View->new;
> > 
> > # Now, let's tell View to display the main page
> > $view->mainpage;
> > 
> > print ".OK";
> > 
> > 1;
> > ----------------------------------------------------
> > 
> > 
> > 
> > 
> > On Thu, 2008-03-13 at 13:29 +0800, Foo JH wrote:
> >> try print $template->output;
> >>
> >> You forgot the print();
> >>
> >> xyon wrote:
> >>> Hey everyone,
> >>>
> >>> Firstly, I apologize I sent the previous email under an incorrect subject
line.
> >>>
> >>> I am working on my first Object-Oriented project, and have hit a slight
> >>> snag. I am using HTML::Template to output within the View module, but it
> >>> never outputs. I don't see any errors in the logs, I just get a blank
> >>> page. Below is pertinent information including a test script with its
> >>> output:
> >>>
> >>>
> >>>
> >>> OS Info:
> >>> ----------------------------------------------------
> >>> CentOS release 4.6 (Final)
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> Package info:
> >>> ----------------------------------------------------
> >>> perl-5.8.8-11
> >>> perl-HTML-Template-2.9-1
> >>> httpd-2.0.59-1.el4s1.10.el4.centos
> >>> mod_perl-2.0.3-1.el4s1.3
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> /home/perl/Myserver/View.pm
> >>> ----------------------------------------------------
> >>> package Myserver::View;
> >>>
> >>> #Setup some essentials
> >>> use strict;         #strict tolerance for code
> >>> use Carp;           #debugging
> >>> use diagnostics;    #more debugging
> >>> use warnings;       #more debugging
> >>>
> >>> #Loadup some needed functions
> >>> use HTML::Template;
> >>>
> >>> sub new {
> >>>     my $self        = shift;
> >>>     return $self;
> >>> }
> >>>
> >>> sub mainpage {
> >>>     my $self        = shift;
> >>>     my $template    = HTML::Template->new( filename =>
> >>> '/home/Perl/tmpl/mainpage.tmpl',
> >>>             cache => 1,
> >>>             debug => 1, 
> >>>             stack_debug => 1 );
> >>>     print "Content-Type: text/html\n\n";
> >>>     $template->output;
> >>>     return $self;
> >>> }
> >>>
> >>> 1;
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> /home/Perl/tests/View_mainpage.pl
> >>> ----------------------------------------------------
> >>> #!/usr/bin/perl -w
> >>>
> >>> # Test printing of the main page
> >>> print "Main Page..";
> >>>
> >>> #Let's load the view module
> >>> use lib "../";
> >>> use Myserver::View;
> >>> #Now let's load some things that are very handy
> >>> use strict;         #strict tolerance for code
> >>> use Carp;           #debugging
> >>> use warnings;       #more debugging
> >>> use diagnostics;    #even more debugging
> >>>
> >>> # Let's create an object
> >>> my $view        = Myserver::View->new;
> >>>
> >>> # Now, let's tell View to display the main page
> >>> $view->mainpage;
> >>>
> >>> print ".OK";
> >>>
> >>> 1;
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> /home/Perl/tmpl/mainpage.tmpl:
> >>> ----------------------------------------------------
> >>> <html><body bgcolor="#FF00FF">Test!</body></html>
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> Output with debugging on (as above):
> >>> ----------------------------------------------------
> >>> $ tests/View_mainpage.pl 
> >>> ### HTML::Template Debug ### In _parse:
> >>> ### HTML::Template _param Stack Dump ###
> >>>
> >>> $VAR1 = [
> >>>           \'<html><body bgcolor="#FF00FF">Test!</body></html>
> >>> '
> >>>         ];
> >>>
> >>> Main Page..Content-Type: text/html
> >>>
> >>> ### HTML::Template Debug ### In output
> >>> ### HTML::Template output Stack Dump ###
> >>>
> >>> $VAR1 = [
> >>>           \'<html><body bgcolor="#FF00FF">Test!</body></html>
> >>> '
> >>>         ];
> >>>
> >>> .OK
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>> Output without debugging:
> >>> ----------------------------------------------------
> >>> $ tests/View_mainpage.pl 
> >>> Main Page..Content-Type: text/html
> >>>
> >>> .OK
> >>> ----------------------------------------------------
> >>>
> >>>
> >>>
> >>>
> >>>   
> > 


Mime
View raw message