Hi all, I'm finally migrating away from an Apache 1.3 / HTML::Embperl::Object 1.3.x environment for our largest application.
I've hit a problem with EMBPERL_OBJECT_HANDLER_CLASS though. Whenever I
use it I get the following error in the apache logs which looks like
some sort of inheritance problem:
<preamble> Can't locate object method "setup_component" via package
"Embperl::__2" at /usr/lib/perl5/Embperl/Object.pm line 407.\n
If I comment out the EMBPERL_OBJECT_HANDLER_CLASS line pages render
correctly with the normal Embperl::Object operation but, of course, I'm
missing all the methods in the request object.
I'm sure I'm doing something stupid :)
I've reduced the application to the following as a minimal test case.
Can anyone shed light on what I've missed?
I've attached the embperl logfile - happy to provide any other debug
information.
base.epl
=========
<html>
[- $req = shift; Execute('*'); -]
</html>
index.html
==========
[- $req = shift; -]
<head><title>Test page</title></head>
<body>
<h1>[+ $req->get_greeting +]</h1>
</body>
Content of the handler class
============================
package Oriel::Embperl2Req;
use Embperl;
use Embperl::Req;
use strict;
use base qw(Embperl::Req);
sub get_greeting { 'Hello World'; }
1;
The virtualhost config
======================
<VirtualHost *:80>
ServerAdmin [EMAIL PROTECTED]
ServerName XXXX.oriel.com.au
DocumentRoot /var/www/test
ErrorLog /path/to/log
CustomLog /path/to/log
# Now the Emperl directives
#
<FilesMatch "\.html$">
SetHandler perl-script
PerlHandler Embperl::Object
</FilesMatch>
# *.epl files are page building blocks only
<Files *.epl>
Order deny,allow
Deny from all
</Files>
EMBPERL_APPNAME test
# optReturnError(262144)
EMBPERL_OPTIONS 262144
#EMBPERL_DEBUG 0
# dbgStd(1) + dbgMem(2) + dbgEval(4) + dbgEnv(16) +
# dbgForm(32) + dbgInput(128) + dbgSession(262144)
#EMBPERL_DEBUG 2097327
# dbgParse(0x1000000) + dbgObjectSearch(0x2000000) +
# dbgFlushLog(0x200) + dbgFlushOutput(0x100)
EMBPERL_DEBUG 0x3000300
EMBPERL_LOG /tmp/embperl2.log
# Same as old optRawInput
EMBPERL_INPUT_ESCMODE 0
EMBPERL_OBJECT_BASE base.epl
EMBPERL_OBJECT_STOPDIR "/var/www/test"
EMBPERL_OBJECT_HANDLER_CLASS Oriel::Embperl2Req
EMBPERL_URIMATCH "\.(html|epl)$"
EMBPERL_COOKIE_PATH /
EMBPERL_COOKIE_EXPIRES +3M
EMBPERL_MAIL_ERRORS_TO "[EMAIL PROTECTED]"
<Directory /var/www/test>
Options +ExecCGI
AllowOverride None
</Directory>
</VirtualHost>
--
Andrew O'Brien
embperl2.log.gz
Description: embperl2.log.gz
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
