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 > >>> ---------------------------------------------------- > >>> > >>> > >>> > >>> > >>> > >
