You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Harald Wehr <hw...@hs-harz.de> on 2002/03/14 10:35:13 UTC

JNI and Tomcat

I use tomcat 4.0.1 on a SuSE Linux 7.3 and have the following problem:

I try to use some functions of a c-shared library. This library works
without problems within a jvm started from a console.

To load this library in tomcat i made a little helper class with
following code:

---snip
public class version {
      static {
	try {
	    System.loadLibrary("mapscript");
	    System.out.println("Library loaded");
	} catch (UnsatisfiedLinkError e) {
			e.printStackTrace();
}
---snip

This class is in $TOMCAT_HOME/classes. To be sure that the class is
loaded for my servlet I explicit call this class in my servlet with:

---snip
Class.forName("version");
---snip

Everything works fine. Console shows that the library has been loaded.

Nevertheless I get "Unsatisfied.Link.Errors" when i try to use some
functions in my servlet in the same way i would use it in a "normal"
java-program started from the console.

Can anyone help me out of this?

Thanks
Harald



--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>


Re: JNI and Tomcat

Posted by Dirk Griesbach <dg...@eurocom-depora.de>.
Hi Harald, Hi David,

look at the fully classified name of your native functions in the DLL or in
the .so and compare them to the ones you have in your <jni>.h headerfile
(created using 'javah').

If you have a (windoze).DLL you can view at them using a tool like
"Depends.exe".

Keep in mind that the functions in your shared lib contain the name of the
(Java)library/Servlet calling !
If the library/Servlet calling the function does not find a function named
"_JAVA_<name_of_the_calling_Javalib>_<name_of_native_function> it will not
work.

Hope this helps

grisi


----- Original Message -----
From: David LAFAY <da...@laposte.net>
To: <to...@jakarta.apache.org>
Sent: Tuesday, September 16, 2003 1:05 PM
Subject: Re: JNI and Tomcat


> Hi,
>
> I have exactly the same problem !
> do you found a solution ?
>
> Thanks,
>
> David LAFAY
>
> --------------------------------------------------------------------------
--
> ----------------------
>
> "Harald Wehr" <hw...@hs-harz.de> a écrit dans le message news:
> 3C906ED1.2000403@hs-harz.de...
> > I use tomcat 4.0.1 on a SuSE Linux 7.3 and have the following problem:
> >
> > I try to use some functions of a c-shared library. This library works
> > without problems within a jvm started from a console.
> >
> > To load this library in tomcat i made a little helper class with
> > following code:
> >
> > ---snip
> > public class version {
> >       static {
> > try {
> >     System.loadLibrary("mapscript");
> >     System.out.println("Library loaded");
> > } catch (UnsatisfiedLinkError e) {
> > e.printStackTrace();
> > }
> > ---snip
> >
> > This class is in $TOMCAT_HOME/classes. To be sure that the class is
> > loaded for my servlet I explicit call this class in my servlet with:
> >
> > ---snip
> > Class.forName("version");
> > ---snip
> >
> > Everything works fine. Console shows that the library has been loaded.
> >
> > Nevertheless I get "Unsatisfied.Link.Errors" when i try to use some
> > functions in my servlet in the same way i would use it in a "normal"
> > java-program started from the console.
> >
> > Can anyone help me out of this?
> >
> > Thanks
> > Harald
> >
> >
> >
> > --
> > To unsubscribe:   <ma...@jakarta.apache.org>
> > For additional commands: <ma...@jakarta.apache.org>
> > Troubles with the list: <ma...@jakarta.apache.org>
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>


Re: JNI and Tomcat

Posted by Dirk Griesbach <dg...@eurocom-depora.de>.
Hi Harald, Hi David,

look at the fully classified name of your native functions in the DLL or in
the .so and compare them to the ones you have in your <jni>.h headerfile
(created using 'javah').

If you have a (windoze).DLL you can view at them using a tool like
"Depends.exe".

Keep in mind that the functions in your shared lib contain the name of the
(Java)library/Servlet calling !
If the library/Servlet calling the function does not find a function named
"_JAVA_<name_of_the_calling_Javalib>_<name_of_native_function> it will not
work.

Hope this helps

grisi


----- Original Message -----
From: David LAFAY <da...@laposte.net>
To: <to...@jakarta.apache.org>
Sent: Tuesday, September 16, 2003 1:05 PM
Subject: Re: JNI and Tomcat


> Hi,
>
> I have exactly the same problem !
> do you found a solution ?
>
> Thanks,
>
> David LAFAY
>
> --------------------------------------------------------------------------
--
> ----------------------
>
> "Harald Wehr" <hw...@hs-harz.de> a écrit dans le message news:
> 3C906ED1.2000403@hs-harz.de...
> > I use tomcat 4.0.1 on a SuSE Linux 7.3 and have the following problem:
> >
> > I try to use some functions of a c-shared library. This library works
> > without problems within a jvm started from a console.
> >
> > To load this library in tomcat i made a little helper class with
> > following code:
> >
> > ---snip
> > public class version {
> >       static {
> > try {
> >     System.loadLibrary("mapscript");
> >     System.out.println("Library loaded");
> > } catch (UnsatisfiedLinkError e) {
> > e.printStackTrace();
> > }
> > ---snip
> >
> > This class is in $TOMCAT_HOME/classes. To be sure that the class is
> > loaded for my servlet I explicit call this class in my servlet with:
> >
> > ---snip
> > Class.forName("version");
> > ---snip
> >
> > Everything works fine. Console shows that the library has been loaded.
> >
> > Nevertheless I get "Unsatisfied.Link.Errors" when i try to use some
> > functions in my servlet in the same way i would use it in a "normal"
> > java-program started from the console.
> >
> > Can anyone help me out of this?
> >
> > Thanks
> > Harald
> >
> >
> >
> > --
> > To unsubscribe:   <ma...@jakarta.apache.org>
> > For additional commands: <ma...@jakarta.apache.org>
> > Troubles with the list: <ma...@jakarta.apache.org>
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: JNI and Tomcat

Posted by David LAFAY <da...@laposte.net>.
Hi,

I have exactly the same problem !
do you found a solution ?

Thanks,

David LAFAY

----------------------------------------------------------------------------
----------------------

"Harald Wehr" <hw...@hs-harz.de> a �crit dans le message news:
3C906ED1.2000403@hs-harz.de...
> I use tomcat 4.0.1 on a SuSE Linux 7.3 and have the following problem:
>
> I try to use some functions of a c-shared library. This library works
> without problems within a jvm started from a console.
>
> To load this library in tomcat i made a little helper class with
> following code:
>
> ---snip
> public class version {
>       static {
> try {
>     System.loadLibrary("mapscript");
>     System.out.println("Library loaded");
> } catch (UnsatisfiedLinkError e) {
> e.printStackTrace();
> }
> ---snip
>
> This class is in $TOMCAT_HOME/classes. To be sure that the class is
> loaded for my servlet I explicit call this class in my servlet with:
>
> ---snip
> Class.forName("version");
> ---snip
>
> Everything works fine. Console shows that the library has been loaded.
>
> Nevertheless I get "Unsatisfied.Link.Errors" when i try to use some
> functions in my servlet in the same way i would use it in a "normal"
> java-program started from the console.
>
> Can anyone help me out of this?
>
> Thanks
> Harald
>
>
>
> --
> To unsubscribe:   <ma...@jakarta.apache.org>
> For additional commands: <ma...@jakarta.apache.org>
> Troubles with the list: <ma...@jakarta.apache.org>
>
>




Re: JNI and Tomcat

Posted by David LAFAY <da...@laposte.net>.
Hi,

I have exactly the same problem !
do you found a solution ?

Thanks,

David LAFAY

----------------------------------------------------------------------------
----------------------

"Harald Wehr" <hw...@hs-harz.de> a �crit dans le message news:
3C906ED1.2000403@hs-harz.de...
> I use tomcat 4.0.1 on a SuSE Linux 7.3 and have the following problem:
>
> I try to use some functions of a c-shared library. This library works
> without problems within a jvm started from a console.
>
> To load this library in tomcat i made a little helper class with
> following code:
>
> ---snip
> public class version {
>       static {
> try {
>     System.loadLibrary("mapscript");
>     System.out.println("Library loaded");
> } catch (UnsatisfiedLinkError e) {
> e.printStackTrace();
> }
> ---snip
>
> This class is in $TOMCAT_HOME/classes. To be sure that the class is
> loaded for my servlet I explicit call this class in my servlet with:
>
> ---snip
> Class.forName("version");
> ---snip
>
> Everything works fine. Console shows that the library has been loaded.
>
> Nevertheless I get "Unsatisfied.Link.Errors" when i try to use some
> functions in my servlet in the same way i would use it in a "normal"
> java-program started from the console.
>
> Can anyone help me out of this?
>
> Thanks
> Harald
>
>
>
> --
> To unsubscribe:   <ma...@jakarta.apache.org>
> For additional commands: <ma...@jakarta.apache.org>
> Troubles with the list: <ma...@jakarta.apache.org>
>
>




---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org