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

Attachment: embperl2.log.gz
Description: embperl2.log.gz

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to