You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Ragnar Hakonarson <ra...@signal.bz> on 2005/09/26 18:01:06 UTC

Having issues with Embperl::Object

 

Dear all

 

I have been building web based application with Embperl since end 1999. I
just now decided to start utilising Embperl::Object and, consequently,
altered relevant configuration files to enable me to use the OO paradigm.

 

My intention was to run both older Embperl web applications (not requiring
Embperl::Object) and newer ones requiring Embperl::Object. However, this has
caused some issues.

 

More to the point, I have managed to get both Embperl applications and
Embperl::Object applications to run individually but not jointly. That is, a
certain configuration allows me to run my older Embperl applications but
then the newer Embperl::Object applications fail, and vice versa.

 

If I include in the http.conf "PerlModule Embperl" the web applications
utilising Embperl::Object works, by omitting it web applications not using
Embperl::Object (but still Embperl) works. BUT I NEVER GET THEM BOTH TO
WORK!!!!

 

The error message I get when web applications utilising Embperl::Object does
not work is : "ERR: 56: : Unknown Provider epcompile" and, when web
applications utilising Embperl without Embperl::Object does not work I get
error message "Undefined subroutine &HTML::Embperl::handler called.\n".

 

Any help would be highly appreciated thank you.

 

Below are my perl.conf and startup.pl.

 

Thanks

Ragnar

 

####################### perl.conf ##########################

 

PerlRequire       /etc/httpd/startup.pl

PerlFreshRestart  On

 

SetEnv EMBPERL_DEBUG 1

SetEnv EMBPERL_MAIL_ERRORS_TO emb_errors@tnsn.com

 

PerlLogHandler Apache::DBILogger

 

PerlSetVar DBILogger_data_source    dbi:Pg:dbname=httpdlog

 

<files *.epl>

SetHandler  perl-script

PerlHandler HTML::Embperl

Options           +ExecCGI

</files>

 

<location /reports>

SetHandler  perl-script

PerlHandler HTML::Embperl

Options           +ExecCGI

</location>

 

<files press.html>

SetHandler      perl-script

PerlHandler     HTML::Embperl

Options         +ExecCGI

</files>

 

AddType text/html .epl

 

# --------- Access directives (inhouse) ----------

<location /protected>

PerlAccessHandler Apache::SubTicketAccess->authenticate

PerlSetVar        TicketRealm protected

</location>

 

<location /loginform>

SetHandler        perl-script

PerlHandler       Apache::SubTicketAccess->login_form

PerlSetVar              TicketRealm protected

</location>

 

<location /login>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->login

PerlSetVar              TicketRealm protected

</location>

 

<location /protected/logout>

SetHandler        perl-script

PerlHandler             Apache::SubTicketAccess->logout

PerlSetVar              TicketRealm protected

</location>

 

# ------------ Access Directives (tracker) ----------

<location /protected_tracker>

PerlAccessHandler       Apache::SubTicketAccess->authenticate

PerlSetVar              TicketRealm protected_tracker

</location>

 

<location /loginform_tracker>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->login_form

PerlSetVar              TicketRealm protected_tracker

</location>

 

<location /login_tracker>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->login 

PerlSetVar              TicketRealm protected_tracker

</location> 

 

<location /protected_tracker/logout>

SetHandler              perl-script 

PerlHandler             Apache::SubTicketAccess->logout 

PerlSetVar              TicketRealm protected_tracker  

</location> 

 

# ------------ SOLICITOR MATTER MANAGEMENT HANDLER ---------------

 

<location /protected_sol_matter_mngt>

PerlAccessHandler       Apache::SubTicketAccess->authenticate

PerlSetVar              TicketRealm protected_sol_matter_mngt

</location>

 

<location /loginform_sol_matter_mngt>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->login_form

PerlSetVar              TicketRealm protected_sol_matter_mngt

</location>

 

<location /login_sol_matter_mngt>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->login

PerlSetVar              TicketRealm protected_sol_matter_mngt

</location>

 

<location /protected_sol_matter_mngt/logout>

SetHandler              perl-script

PerlHandler             Apache::SubTicketAccess->logout

PerlSetVar              TicketRealm protected_sol_matter_mngt

</location>

 

 

<Location /protected_sol_matter_mngt>

PerlSetEnv EMBPERL_OBJECT_BASE base.oop

PerlSetEnv EMBPERL_FILESMATCH "\.oop$"

PerlSetEnv EMBPERL_OBJECT_STOPDIR /protected_sol_matter_mngt      

SetHandler perl-script

PerlHandler Embperl::Object

Options ExecCGI

</Location>

 

######################## startup.pl ##########################

 

#!/usr/bin/perl

 

 

BEGIN {

   unshift(@INC, "/caseTracking/packages");

}

 

use Apache::DBI;

use DBI;

 

$ENV{EMBPERL_SESSION_HANDLER_CLASS} = 'no';

 

use Apache::Cookie;

use Apache::DBILogger;

use Apache::TicketAccess();

use Apache::SubTicketAccess();

 

 

# -- Access directives for 'protected' area --

  Apache::SubTicketAccess->configure('protected', {

      TicketDB          => 'dbi:Pg(AutoCommit=>0):dbname=transactiondb',

      TicketDBUser            => 'clm',

      TicketUserTable         => 'users:username:passwd',

      TicketTable             => 'tickets:ticket_hash:expires',

      TicketSecretTable       => 'ticketsecrets:sec_data:sec_version',

      TicketDomain            => '.tnsn.com',

      TicketPath              => '/protected',

      TicketSecure            =>  0,

      TicketLoginForm         => '/loginform',

      TicketLoginScript       => '/login',

      TicketExpires           => 30,

      TicketLogoutURI         => '/loginform?logout=1',

      TicketDefaultPage => '/home.epl',

  });

 

# -- Access directive for tracker.tnsn.com --

  Apache::SubTicketAccess->configure('protected_tracker', {

      TicketDB                =>
'dbi:Pg(AutoCommit=>0):dbname=transactiondb',

      TicketDBUser            => 'clm',

      TicketUserTable         => 'users_tracker:username:passwd',

      TicketTable             => 'tickets:ticket_hash:expires',

      TicketSecretTable       => 'ticketsecrets:sec_data:sec_version',

      TicketDomain            => '.tnsn.com',

      TicketPath              => '/protected_tracker',

      TicketSecure            =>  0,

      TicketLoginForm         => '/loginform_tracker',

      TicketLoginScript       => '/login_tracker',

      TicketExpires           => 60,

      TicketLogoutURI         => '/',

      TicketDefaultPage       =>
'/protected_tracker/mainpage.epl?first=true',

  });

 

# -- Access directive for solicitor matter management --

  Apache::SubTicketAccess->configure('protected_sol_matter_mngt', {

        TicketDB                =>
'dbi:Pg(AutoCommit=>0):dbname=transactiondb',

        TicketDBUser            => 'clm',

        TicketUserTable         => 'users_solicitors:username:passwd',

        TicketTable             => 'tickets:ticket_hash:expires',

        TicketSecretTable       => 'ticketsecrets:sec_data:sec_version',

        TicketDomain            => '.tnsn.com',

        TicketPath              => '/protected_sol_matter_mngt',

        TicketSecure            =>  0,

        TicketLoginForm         => '/loginform_sol_matter_mngt',

        TicketLoginScript       => '/login_sol_matter_mngt',

        TicketExpires           => 60,

        TicketLogoutURI         => '/',

        TicketDefaultPage       => '/protected_sol_matter_mngt/home.oop',

  });

 

 

1;

 

 


RE: Having issues with Embperl::Object

Posted by Gerald Richter <ri...@ecos.de>.
HI,

You are using HTML::Embperl which is Embperl 1.3 and Embperl::Object which
is Embperl 2.0. Is this intented?

Both work together, so no problem, but you need a

PerlModule HTML::Embperl

For Embperl 1.3 and the lines

LoadModule /path/to/perl5/site/lib/..../Embperl.so
PerlModule Embperl

For Embperl 2.0 to work correctly.

Gerald



---------------------------------------------------------------------------
Besuchen Sie uns auf der Systems 2005 in München, Halle B2, Stand 704
---------------------------------------------------------------------------
Gerald Richter            ecos electronic communication services gmbh
IT-Securitylösungen * Webapplikationen mit Apache/Perl/mod_perl/Embperl

Post:       Tulpenstrasse 5          D-55276 Dienheim b. Mainz
E-Mail:     richter@ecos.de          Voice:   +49 6133 939-122
WWW:        http://www.ecos.de/      Fax:     +49 6133 939-333
---------------------------------------------------------------------------
ECOS BB-5000 Firewall- und IT-Security Appliance: www.bb-5000.info
---------------------------------------------------------------------------

  

> -----Original Message-----
> From: Ragnar Hakonarson [mailto:ragnar@signal.bz] 
> Sent: Monday, September 26, 2005 6:01 PM
> To: embperl@perl.apache.org
> Subject: Having issues with Embperl::Object
> 
>  
> 
> Dear all
> 
>  
> 
> I have been building web based application with Embperl since 
> end 1999. I just now decided to start utilising 
> Embperl::Object and, consequently, altered relevant 
> configuration files to enable me to use the OO paradigm.
> 
>  
> 
> My intention was to run both older Embperl web applications 
> (not requiring Embperl::Object) and newer ones requiring 
> Embperl::Object. However, this has caused some issues.
> 
>  
> 
> More to the point, I have managed to get both Embperl 
> applications and Embperl::Object applications to run 
> individually but not jointly. That is, a certain 
> configuration allows me to run my older Embperl applications 
> but then the newer Embperl::Object applications fail, and vice versa.
> 
>  
> 
> If I include in the http.conf “PerlModule Embperl” the web 
> applications utilising Embperl::Object works, by omitting it 
> web applications not using Embperl::Object (but still 
> Embperl) works. BUT I NEVER GET THEM BOTH TO WORK!!!!
> 
>  
> 
> The error message I get when web applications utilising 
> Embperl::Object does not work is : “ERR: 56: : Unknown 
> Provider epcompile” and, when web applications utilising 
> Embperl without Embperl::Object does not work I get error 
> message “Undefined subroutine &HTML::Embperl::handler called.\n”.
> 
>  
> 
> Any help would be highly appreciated thank you.
> 
>  
> 
> Below are my perl.conf and startup.pl.
> 
>  
> 
> Thanks
> 
> Ragnar
> 
>  
> 
> ####################### perl.conf ##########################
> 
>  
> 
> PerlRequire       /etc/httpd/startup.pl
> 
> PerlFreshRestart  On
> 
>  
> 
> SetEnv EMBPERL_DEBUG 1
> 
> SetEnv EMBPERL_MAIL_ERRORS_TO emb_errors@tnsn.com
> 
>  
> 
> PerlLogHandler Apache::DBILogger
> 
>  
> 
> PerlSetVar DBILogger_data_source    dbi:Pg:dbname=httpdlog
> 
>  
> 
> <files *.epl>
> 
> SetHandler  perl-script
> 
> PerlHandler HTML::Embperl
> 
> Options           +ExecCGI
> 
> </files>
> 
>  
> 
> <location /reports>
> 
> SetHandler  perl-script
> 
> PerlHandler HTML::Embperl
> 
> Options           +ExecCGI
> 
> </location>
> 
>  
> 
> <files press.html>
> 
> SetHandler      perl-script
> 
> PerlHandler     HTML::Embperl
> 
> Options         +ExecCGI
> 
> </files>
> 
>  
> 
> AddType text/html .epl
> 
>  
> 
> # --------- Access directives (inhouse) ----------
> 
> <location /protected>
> 
> PerlAccessHandler Apache::SubTicketAccess->authenticate
> 
> PerlSetVar        TicketRealm protected
> 
> </location>
> 
>  
> 
> <location /loginform>
> 
> SetHandler        perl-script
> 
> PerlHandler       Apache::SubTicketAccess->login_form
> 
> PerlSetVar              TicketRealm protected
> 
> </location>
> 
>  
> 
> <location /login>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->login
> 
> PerlSetVar              TicketRealm protected
> 
> </location>
> 
>  
> 
> <location /protected/logout>
> 
> SetHandler        perl-script
> 
> PerlHandler             Apache::SubTicketAccess->logout
> 
> PerlSetVar              TicketRealm protected
> 
> </location>
> 
>  
> 
> # ------------ Access Directives (tracker) ----------
> 
> <location /protected_tracker>
> 
> PerlAccessHandler       Apache::SubTicketAccess->authenticate
> 
> PerlSetVar              TicketRealm protected_tracker
> 
> </location>
> 
>  
> 
> <location /loginform_tracker>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->login_form
> 
> PerlSetVar              TicketRealm protected_tracker
> 
> </location>
> 
>  
> 
> <location /login_tracker>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->login 
> 
> PerlSetVar              TicketRealm protected_tracker
> 
> </location> 
> 
>  
> 
> <location /protected_tracker/logout>
> 
> SetHandler              perl-script 
> 
> PerlHandler             Apache::SubTicketAccess->logout 
> 
> PerlSetVar              TicketRealm protected_tracker  
> 
> </location> 
> 
>  
> 
> # ------------ SOLICITOR MATTER MANAGEMENT HANDLER ---------------
> 
>  
> 
> <location /protected_sol_matter_mngt>
> 
> PerlAccessHandler       Apache::SubTicketAccess->authenticate
> 
> PerlSetVar              TicketRealm protected_sol_matter_mngt
> 
> </location>
> 
>  
> 
> <location /loginform_sol_matter_mngt>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->login_form
> 
> PerlSetVar              TicketRealm protected_sol_matter_mngt
> 
> </location>
> 
>  
> 
> <location /login_sol_matter_mngt>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->login
> 
> PerlSetVar              TicketRealm protected_sol_matter_mngt
> 
> </location>
> 
>  
> 
> <location /protected_sol_matter_mngt/logout>
> 
> SetHandler              perl-script
> 
> PerlHandler             Apache::SubTicketAccess->logout
> 
> PerlSetVar              TicketRealm protected_sol_matter_mngt
> 
> </location>
> 
>  
> 
>  
> 
> <Location /protected_sol_matter_mngt>
> 
> PerlSetEnv EMBPERL_OBJECT_BASE base.oop
> 
> PerlSetEnv EMBPERL_FILESMATCH "\.oop$"
> 
> PerlSetEnv EMBPERL_OBJECT_STOPDIR /protected_sol_matter_mngt      
> 
> SetHandler perl-script
> 
> PerlHandler Embperl::Object
> 
> Options ExecCGI
> 
> </Location>
> 
>  
> 
> ######################## startup.pl ##########################
> 
>  
> 
> #!/usr/bin/perl
> 
>  
> 
>  
> 
> BEGIN {
> 
>    unshift(@INC, "/caseTracking/packages");
> 
> }
> 
>  
> 
> use Apache::DBI;
> 
> use DBI;
> 
>  
> 
> $ENV{EMBPERL_SESSION_HANDLER_CLASS} = 'no';
> 
>  
> 
> use Apache::Cookie;
> 
> use Apache::DBILogger;
> 
> use Apache::TicketAccess();
> 
> use Apache::SubTicketAccess();
> 
>  
> 
>  
> 
> # -- Access directives for 'protected' area --
> 
>   Apache::SubTicketAccess->configure('protected', {
> 
>       TicketDB          => 
> 'dbi:Pg(AutoCommit=>0):dbname=transactiondb',
> 
>       TicketDBUser            => 'clm',
> 
>       TicketUserTable         => 'users:username:passwd',
> 
>       TicketTable             => 'tickets:ticket_hash:expires',
> 
>       TicketSecretTable       => 'ticketsecrets:sec_data:sec_version',
> 
>       TicketDomain            => '.tnsn.com',
> 
>       TicketPath              => '/protected',
> 
>       TicketSecure            =>  0,
> 
>       TicketLoginForm         => '/loginform',
> 
>       TicketLoginScript       => '/login',
> 
>       TicketExpires           => 30,
> 
>       TicketLogoutURI         => '/loginform?logout=1',
> 
>       TicketDefaultPage => '/home.epl',
> 
>   });
> 
>  
> 
> # -- Access directive for tracker.tnsn.com --
> 
>   Apache::SubTicketAccess->configure('protected_tracker', {
> 
>       TicketDB                => 
> 'dbi:Pg(AutoCommit=>0):dbname=transactiondb',
> 
>       TicketDBUser            => 'clm',
> 
>       TicketUserTable         => 'users_tracker:username:passwd',
> 
>       TicketTable             => 'tickets:ticket_hash:expires',
> 
>       TicketSecretTable       => 'ticketsecrets:sec_data:sec_version',
> 
>       TicketDomain            => '.tnsn.com',
> 
>       TicketPath              => '/protected_tracker',
> 
>       TicketSecure            =>  0,
> 
>       TicketLoginForm         => '/loginform_tracker',
> 
>       TicketLoginScript       => '/login_tracker',
> 
>       TicketExpires           => 60,
> 
>       TicketLogoutURI         => '/',
> 
>       TicketDefaultPage       => 
> '/protected_tracker/mainpage.epl?first=true',
> 
>   });
> 
>  
> 
> # -- Access directive for solicitor matter management --
> 
>   Apache::SubTicketAccess->configure('protected_sol_matter_mngt', {
> 
>         TicketDB                => 
> 'dbi:Pg(AutoCommit=>0):dbname=transactiondb',
> 
>         TicketDBUser            => 'clm',
> 
>         TicketUserTable         => 'users_solicitors:username:passwd',
> 
>         TicketTable             => 'tickets:ticket_hash:expires',
> 
>         TicketSecretTable       => 
> 'ticketsecrets:sec_data:sec_version',
> 
>         TicketDomain            => '.tnsn.com',
> 
>         TicketPath              => '/protected_sol_matter_mngt',
> 
>         TicketSecure            =>  0,
> 
>         TicketLoginForm         => '/loginform_sol_matter_mngt',
> 
>         TicketLoginScript       => '/login_sol_matter_mngt',
> 
>         TicketExpires           => 60,
> 
>         TicketLogoutURI         => '/',
> 
>         TicketDefaultPage       => 
> '/protected_sol_matter_mngt/home.oop',
> 
>   });
> 
>  
> 
>  
> 
> 1;
> 
>  
> 
>  
> 
> 
> 
> ** Virus checked by BB-5000 Mailfilter ** 
> !DSPAM:43381b6774891900910809!
> 
> 


 
** Virus checked by BB-5000 Mailfilter ** 


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org