One other important detail: I was on Linux...

Patrick

On Fri, 2004-04-23 at 17:41, Andy Lowe wrote:
> ok.  understood.  my prototype is up and running with the cgi workaround:
> everything runs under mod_perl, except the java callouts which operate as separate 
> subrequest invocations to the cgi
> 
> that's obviously not ideal, but its good enough for what I need for now.
> 
> when I get a chance, I'll see if I can dig in a little deeper to figure out what's 
> going on.
> 
> thanks for your efforts & regards,
> Andy
> 
> 
> -----Original Message-----
> From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED]
> Sent: Friday, April 23, 2004 3:20 PM
> To: Andy Lowe
> Subject: RE: Inline::Java with mod_perl Apache::Registry
> 
> 
> Andy,
> 
> When I said I had used mod_perl under Libux, I had actually written a
> mod_perl module. I have never user Apache::* wrappers to load "plain"
> CGI into mod_perl.
> 
> That seems to be what you are doing, so I can't confirm it ever worked
> that way. I will try to perform more tests when I have time.
> 
> Patrick
> 
> 
> On Fri, 2004-04-23 at 15:26, Andy Lowe wrote:
> > Patrick,
> > 
> > fwiw, I tried without success on Linux and Solaris, though if my problem was some 
> > configuration error, I no doubt made the same one on all three systems.  :-)
> > 
> > if you get a chance, I'd be very interested to know if your results were 
> > different.  my WindowsXP and Linux Redhat9 systems are running the same releases 
> > of Apache, mod_perl and Inline::Java, that is:  Inline-Java-0.47, Apache/1.3.27 
> > (Unix) mod_perl/1.27
> > 
> > I tried playing around with using the Apache::PerlRun handler instead of the 
> > Apache::PerlRegistry handler, and setting different options, including DEBUG => 4, 
> > and so have lots of logs that pretty much tell me nothing: 
> > 
> > e.g. for the sample from Java.pod, I get
> > ...
> >     [Fri Apr 23 12:46:43 2004] [error] PerlRun: `Can't locate object method "new" 
> > via package "Pod_counter" (perhaps you forgot to load "Pod_counter"?) at 
> > /z/mod_perl/test9 line 17.
> > ...
> > 
> > I don't get this when running the (slightly modified) sample from the command 
> > line.  this sample also works fine as a plain old cgi.  (so I guess that will be 
> > my backup plan :)
> > 
> > fyi, here's the slightly modified sample.  as you can see I made Pod_counter 
> > public, and rewrote the output section so it puts out something meaningful when 
> > run from the commandline.  the DIRECTORY option pointing to a writable dir is 
> > necessary on Linux if you run httpd as an unprivileged user like 'nobody'.  Apache 
> > on windows also requires the shbang to tell it what program to apply to a .cgi
> > 
> > since it runs as a cgi, it seems this program should work under mod_perl too. 
> > perhaps the root cause has something to do with Open3 failing to close STDIN, but 
> > I don't know.
> > 
> > ----------------------------------------------------------------------------------------------------
> > #!/usr/local/bin/perl
> > use CGI qw/:standard :html3/;
> > use Apache::Constants ;
> > use Inline ( Java => << 'END',
> >         public class Pod_counter {
> >             public static int cnt = 0 ;
> >             public Pod_counter(){
> >                 cnt++ ;
> >             }
> >         }
> > END
> >           DIRECTORY=>'/var/www/_Inline',
> >         SHARED_JVM => 1,
> >         ) ;
> > 
> > # reset signal handlers unless JVM is shared
> >    Inline::Java::release_JVM() ;
> > 
> >    my $c = new Pod_counter() ;
> > 
> > print header;
> > print start_html(-title=>"test9" );
> > print "This page has been accessed " . $c->{cnt} . " times." ;
> > print($val . "\n") ; # prints value
> > 
> > print end_html;
> > 
> > 
> > -----Original Message-----
> > From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 22, 2004 4:44 PM
> > To: Andy Lowe
> > Subject: RE: Inline::Java with mod_perl Apache::Registry [was: Re:
> > InlineCwith mod_perl Apache::Registry]
> > 
> > 
> > On Thu, 2004-04-22 at 14:47, Andy Lowe wrote:
> > > Patrick,
> > > 
> > > thanks for your prompt reply!
> > > 
> > > first, let me say that Inline::Java is highly magical.  thanks for your efforts.
> > > 
> > > I am using Inline-Java-0.47.
> > > 
> > > to reduce the number of variables, I've backed up to trying the example at 
> > > http://search.cpan.org/~patl/Inline-Java-0.32/Java.pod#USING_Inline::Java_UNDER_MOD_PERL
> > > 
> > > as you know, that example has a simple class definition directly inline with the 
> > > source, uses SHARED_JVM=>1 and no other options.  it exhibits the same behavior. 
> > >  maybe this is something windows-specific?  has anyone tried this on windows?
> > > 
> > 
> > I will try again tomorrow on Linux to make sure it still works.
> > 
> > Patrick
> > 
> > > 
> > > -----Original Message-----
> > > From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED]
> > > Sent: Thursday, April 22, 2004 12:46 PM
> > > To: Andy Lowe
> > > Cc: [EMAIL PROTECTED]
> > > Subject: Re: Inline::Java with mod_perl Apache::Registry [was: Re:
> > > Inline Cwith mod_perl Apache::Registry]
> > > 
> > > 
> > > Hi A.,
> > > 
> > > A while back I had gotten Inline::Java to work under mod_perl, but in
> > > Linux. I have never used mod_perl in Windows.
> > > 
> > > What Inline::Java version and what options (SHARED_JVM, ...) are you
> > > using?
> > > 
> > > Do you know what $fd is supposed to point to when it fails?
> > > 
> > > Patrick
> > > 
> > > 
> > > 
> > > On Thu, 2004-04-22 at 11:25, A. Lowe wrote:
> > > > I've been trying to do something similar, but with Inline::Java.
> > > > 
> > > > I can get a proxy module to bridge between my perl application to java code
> > > > inside a jar, but when I try to deploy this same code as a web application,
> > > > it bombs out with errors like:
> > > > 
> > > > [Wed Apr 21 22:17:33 2004] [error] Can't exec JVM: open3: Can't call method
> > > > "close" on an undefined value at
> > > > c:\usr\local\lib\perl-5.6.1\lib/IPC/Open3.pm line 335.
> > > > 
> > > > the whacky path should give you a clue that this is perl 5.6.1, on windows.
> > > > the server is: Apache/1.3.27 (Win32) mod_perl/1.27_01-dev
> > > > 
> > > > What I can't figure is why the same config would work standalone, but not
> > > > under mod_perl.
> > > > 
> > > > I've checked everything I can think of, including the environment, PATH and
> > > > CLASSPATH, even to the point of debugging inside JVM.pm.
> > > > 
> > > > fwiw, i've taken it to the point in Open3.pm where the line:
> > > > 
> > > >      $fd->{tmp_copy} = IO::Handle->new_from_fd($fd->{handle}, $fd->{mode});
> > > > 
> > > > appears to fail, returning null,  errno says $fd is a bad file descriptor.
> > > > 
> > > > now I'm wondering should Inline::Java even be expected to work under
> > > > mod_perl?
> > > > 
> > > > thanks,
> > > > 
> > > > A. Lowe
> > > > 
> > > > "Roger Moffatt" <[EMAIL PROTECTED]> wrote in message
> > > > news:[EMAIL PROTECTED]
> > > > > Hi
> > > > >
> > > > > I'm integrating a C API with my mod_perl application which runs using
> > > > > Apache::Registry as it is a recent port from a standard CGI environment.
> > > > >
> > > > > I've got things to work MOST of the time by using the following
> > > > > configuration;
> > > > >
> > > > > use strict;
> > > > > use CGI;
> > > > > use Crypt::SKey qw(compute_md5);
> > > > >
> > > > > use Inline ( C=>'/var/www/perl/clipmail.c',
> > > > > AUTO_INCLUDE=>'#include "/var/www/perl/API.h"',
> > > > > DIRECTORY => '/var/www/perl/_Inline/',
> > > > > ENABLE => 'UNTAINT' );
> > > > >
> > > > > With all my C code in the clipmail.c file and the _Inline directory
> > > > > configured so apache can read and write to it.
> > > > >
> > > > > My problem is that if I leave the browser for a while and then come back
> > > > and
> > > > > use it again, I get a server 500 error and looking in my error logs I get
> > > > an
> > > > > entry as follows NOTE that the _inline directory option listed in the
> > > > error
> > > > > IS NOT the same as the one I actually am using which starts with a capital
> > > > > "I";
> > > > >
> > > > > >> ModPerl::Registry Invalid value '/var/www/perl/_inline' for config
> > > > option
> > > > > DIRECTORY  ... blah compilation aborted.
> > > > >
> > > > > I don't quite understand this, I am specifying which directory to use -
> > > > and
> > > > > it's not that one!! I'm suspecting this is something to do with
> > > > persistance
> > > > > and the way mod_perl under Apache::Registry works - I wonder if the error
> > > > is
> > > > > cropping up when a new child process is spawned and maybe mod_perl is
> > > > trying
> > > > > to re-compile the C code but for some reason is ignoring the config
> > > > > option???
> > > > >
> > > > > Any help much appreciated
> > > > >
> > > > > Regards
> > > > > Roger Moffatt
> > > > > UK
> > > > >
> > > > >
> > > > >
> > > > >
> > > 
> > 
> 


Reply via email to