TOMCAT and JNI problem...
Hello. I'm running a JSP based Web aplicacion using Tomcat wich uses a Java Class that loads a native library (JNI). The files are created as follows: javac extractor/HTDInterface.java javah extractor.HTDInterface then I compile my c++ source code with the header file extractor_HTDInterface.h to create the shared library libhtd.so create a jar file with the Class that implements JNI call static { System.loadLibrary(htd); jar cvf extractor.jar extractor/HTDInterface.class For testing a standalone application I set my CLASSPATH to include extractor.jar and libhtd.so file is placed inside the JDK at /JAVA_HOME/jre/lib/i386/ I successfully build and run The standalone application usin the shared library. For the web application, extractor.jar is placed at /common/lib/ TOMCAT directory I leave the libhtd.so at the /JAVA_HOME/jre/lib/i386/ JDK directory. When my JSP based Web application calls the native library method the Tomcat just STOPS it doesn't work STOPS The message is: The connection was refused when attempting to contact localhost:8080 I have to run startup.sh script again. I took off the libhtd.so file from /JAVA_HOME/jre/lib/i386/ and I placed it in a different directory outside the tomcat: /home/myuser/lib/libhtd.so Then I made a script to start the tomcat with the LD_LIBRARY_PATH environment variable set up: - #!/bin/sh export JAVA_HOME=/opt/java export CATALINA_HOME=/usr/local/jakarta-tomcat export PATH=${JAVA_HOME}/bin:${PATH} export JAVA_PATH=${JAVA_HOME} # path to load the libhtd.so shared library export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/myuser/lib cd /usr/local/jakarta-tomcat/bin sh startup.sh - BUT the same happens when the Web application calls the native library method the Tomcat just STOPS it doesn't work ..STOPS The message is: The connection was refused when attempting to contact localhost:8080 just like when you try to load the web application and the TOMCAT server is not UP. Does anyone knows how to solve this I have read that maybe setting up the CATALINA_OPTS environment variable can solve this problem BUT I dont know how to set that variable. ??? I hope this time I've made myself clear Another thing: I'm working under Red Hat 9.0 TOMCAT 4.1.27 and JDK 1.4.2 Pablo Vidal _ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: TOMCAT and JNI problem...
Then I made a script to start the tomcat with the LD_LIBRARY_PATH environment variable set up: - #!/bin/sh export JAVA_HOME=/opt/java export CATALINA_HOME=/usr/local/jakarta-tomcat export PATH=${JAVA_HOME}/bin:${PATH} export JAVA_PATH=${JAVA_HOME} # path to load the libhtd.so shared library export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/myuser/lib cd /usr/local/jakarta-tomcat/bin sh startup.sh - Did you try to startup Tomcat with the same script, without using your library, in order to check if the script works right? Sometimes I had such error when I forgot to set JAVA_HOME or CATALINA_HOME properly :-))) G -- Giuseppe Briotti [EMAIL PROTECTED] Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius. (Orazio) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: TOMCAT and JNI problem...
Did you try to startup Tomcat with the same script, without using your library, in order to check if the script works right? YES I start up the tomcat with the same script to test other applications that doesn't work with JNI and everything goes fine. Pablo Vidal From: Giuseppe Briotti [EMAIL PROTECTED] Reply-To: Tomcat Users List [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: Re: TOMCAT and JNI problem... Date: Mon, 26 Jan 2004 17:29:02 +0100 (CET) Then I made a script to start the tomcat with the LD_LIBRARY_PATH environment variable set up: - #!/bin/sh export JAVA_HOME=/opt/java export CATALINA_HOME=/usr/local/jakarta-tomcat export PATH=${JAVA_HOME}/bin:${PATH} export JAVA_PATH=${JAVA_HOME} # path to load the libhtd.so shared library export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/myuser/lib cd /usr/local/jakarta-tomcat/bin sh startup.sh - Did you try to startup Tomcat with the same script, without using your library, in order to check if the script works right? Sometimes I had such error when I forgot to set JAVA_HOME or CATALINA_HOME properly :-))) G -- Giuseppe Briotti [EMAIL PROTECTED] Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius. (Orazio) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] _ Las mejores tiendas, los precios mas bajos, entregas en todo el mundo, YupiMSN Compras: http://latam.msn.com/compras/ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: TOMCAT and JNI problem...
Hi Pablo we also use JNI in our web apps. it works (except the reloading issue, but that's another story). we use the ./bin/setenv.sh script for our settings, therefore: ... # must contain the ACE Agent JNI library libaceagent.so: LD_LIBRARY_PATH=/home/bgo/deploy/sr-hls/native export LD_LIBRARY_PATH ... I assume, your JNI implementation is somehow broken... and this makes Tomcat stop... but that's just a wild guess from far away... regards -Bernd. -Original Message- From: J.Pablo M [mailto:[EMAIL PROTECTED] Sent: Montag, 26. Januar 2004 17:20 To: [EMAIL PROTECTED] Subject: TOMCAT and JNI problem... Hello. I'm running a JSP based Web aplicacion using Tomcat wich uses a Java Class that loads a native library (JNI). The files are created as follows: javac extractor/HTDInterface.java javah extractor.HTDInterface then I compile my c++ source code with the header file extractor_HTDInterface.h to create the shared library libhtd.so create a jar file with the Class that implements JNI call static { System.loadLibrary(htd); jar cvf extractor.jar extractor/HTDInterface.class For testing a standalone application I set my CLASSPATH to include extractor.jar and libhtd.so file is placed inside the JDK at /JAVA_HOME/jre/lib/i386/ I successfully build and run The standalone application usin the shared library. For the web application, extractor.jar is placed at /common/lib/ TOMCAT directory I leave the libhtd.so at the /JAVA_HOME/jre/lib/i386/ JDK directory. When my JSP based Web application calls the native library method the Tomcat just STOPS it doesn't work STOPS The message is: The connection was refused when attempting to contact localhost:8080 I have to run startup.sh script again. I took off the libhtd.so file from /JAVA_HOME/jre/lib/i386/ and I placed it in a different directory outside the tomcat: /home/myuser/lib/libhtd.so Then I made a script to start the tomcat with the LD_LIBRARY_PATH environment variable set up: - #!/bin/sh export JAVA_HOME=/opt/java export CATALINA_HOME=/usr/local/jakarta-tomcat export PATH=${JAVA_HOME}/bin:${PATH} export JAVA_PATH=${JAVA_HOME} # path to load the libhtd.so shared library export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/home/myuser/lib cd /usr/local/jakarta-tomcat/bin sh startup.sh - BUT the same happens when the Web application calls the native library method the Tomcat just STOPS it doesn't work ..STOPS The message is: The connection was refused when attempting to contact localhost:8080 just like when you try to load the web application and the TOMCAT server is not UP. Does anyone knows how to solve this I have read that maybe setting up the CATALINA_OPTS environment variable can solve this problem BUT I dont know how to set that variable. ??? I hope this time I've made myself clear Another thing: I'm working under Red Hat 9.0 TOMCAT 4.1.27 and JDK 1.4.2 Pablo Vidal _ MSN Amor: busca tu ½ naranja http://latam.msn.com/amor/ - 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]