Re: Linux JNI ClassLoad

2006-03-05 Thread Richard Toren

Hello,
  I use the SleepyCat dbxml which is also JNI and I have to do the 
following:


export JAVA_OPTS='-Djava.library.path=/path/to/folder/with/so'

then...

sh catalina.sh .run 


I'd wager that you would have to do the same..

Richard

Shannon Scott wrote:


Greetings,
I have been trying to use some Native C code in one of my applications.
I have it working, but after it runs once it fails.  
The release-notes mention that:

To avoid this problem, place classes that load native libraries outside
of the web application, and ensure that the loadLibrary() call is
executed only once during the lifetime of a particular JVM.


From here:

http://tomcat.apache.org/tomcat-5.0-doc/class-loader-howto.html
I read:
For classes and resources that must be shared across all web
applications, 
place unpacked classes and resources under
$CATALINA_BASE/shared/classes, 
or place JAR files containing those classes and resources under 
$CATALINA_BASE/shared/lib.


When I place class files into my $CATALINA_BASE/shared/classes, I get
the 
'NoClassDefFoundError' error.  I have also tried a package in

$CATALINA_BASE/shared/lib.

Has anyone successfully resolved this issue on the Linux platform?
Where is the config that tells tomcat to load classes from
$CATALINA_BASE/shared/classes?  It seems like mine is not configured
correctly because they don't seem to get loaded.
Any pointers or advice is greatly appreciated.
Take care.
S




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


 




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



Re: Linux JNI ClassLoad

2006-03-03 Thread Mike Sabroff
I think that this can be done with the environment variable 
LD_LIBRARY_PATH which will point to your C object file.


This is an uneducated guess, but worth a try.

Mike

Shannon Scott wrote:

Greetings,
I have been trying to use some Native C code in one of my applications.
I have it working, but after it runs once it fails.  
The release-notes mention that:

To avoid this problem, place classes that load native libraries outside
of the web application, and ensure that the loadLibrary() call is
executed only once during the lifetime of a particular JVM.

From here:
http://tomcat.apache.org/tomcat-5.0-doc/class-loader-howto.html
I read:
For classes and resources that must be shared across all web
applications, 
place unpacked classes and resources under
$CATALINA_BASE/shared/classes, 
or place JAR files containing those classes and resources under 
$CATALINA_BASE/shared/lib.


When I place class files into my $CATALINA_BASE/shared/classes, I get
the 
'NoClassDefFoundError' error.  I have also tried a package in

$CATALINA_BASE/shared/lib.

Has anyone successfully resolved this issue on the Linux platform?
Where is the config that tells tomcat to load classes from
$CATALINA_BASE/shared/classes?  It seems like mine is not configured
correctly because they don't seem to get loaded.
Any pointers or advice is greatly appreciated.
Take care.
S




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

  


--
Mike Sabroff
Web Services
Developer
[EMAIL PROTECTED]
920-568-8379


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



RE: Linux JNI ClassLoad

2006-03-03 Thread Shannon Scott
Mike,
Thank you for your response.  I have tried to place my shared object
files into /usr/local/lib which is in the LD_LIBRARY_PATH environment
variable for my tomcat config.

When I place my class files in $CATALINA_BASE/common/classes, the
function works correctly ( library is found ), but only once ( because
the Native code cannot be loaded more than once in the JVM, I suppose ).

When I place my class files in $CATALINA_BASE/shared/classes, which is
what the docs explain is appropriate for resolving this issue, the class
cannot be found.  Is anyone else having trouble loading classes from
$CATALINA_BASE/shared/classes?

Thanks again.
Shannon


-Original Message-
From: Mike Sabroff [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 03, 2006 11:29 AM
To: Tomcat Users List
Subject: Re: Linux JNI ClassLoad

I think that this can be done with the environment variable 
LD_LIBRARY_PATH which will point to your C object file.

This is an uneducated guess, but worth a try.

Mike

Shannon Scott wrote:
 Greetings,
 I have been trying to use some Native C code in one of my
applications.
 I have it working, but after it runs once it fails.  
 The release-notes mention that:
 To avoid this problem, place classes that load native libraries
outside
 of the web application, and ensure that the loadLibrary() call is
 executed only once during the lifetime of a particular JVM.

 From here:
 http://tomcat.apache.org/tomcat-5.0-doc/class-loader-howto.html
 I read:
 For classes and resources that must be shared across all web
 applications, 
 place unpacked classes and resources under
 $CATALINA_BASE/shared/classes, 
 or place JAR files containing those classes and resources under 
 $CATALINA_BASE/shared/lib.

 When I place class files into my $CATALINA_BASE/shared/classes, I get
 the 
 'NoClassDefFoundError' error.  I have also tried a package in
 $CATALINA_BASE/shared/lib.

 Has anyone successfully resolved this issue on the Linux platform?
 Where is the config that tells tomcat to load classes from
 $CATALINA_BASE/shared/classes?  It seems like mine is not configured
 correctly because they don't seem to get loaded.
 Any pointers or advice is greatly appreciated.
 Take care.
 S




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

   

-- 
Mike Sabroff
Web Services
Developer
[EMAIL PROTECTED]
920-568-8379


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


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