[JNI] Java ne trouve pas mes méthodes natives
Bonjour,
Je suis en train de réaliser une application java fonctionnant sous Tomcat et qui a besoin d'appeler des méthodes en C. Pour cela, j'utilise JNI.
J'ai suivi le protocole de création à la lettre (création de la classe java, création de l'entete.h via javah, de la librairie dll, etc...) mais lorsque j'exécute mon application j'ai cette erreur :
Citation:
java.lang.UnsatisfiedLinkError: no Structure in java.library.path
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
java.lang.Runtime.loadLibrary0(Runtime.java:788)
java.lang.System.loadLibrary(System.java:834)
serveur.Structure.<clinit>(Structure.java:15)
serveur.Servlet_sem.doPost(Servlet_sem.java:90)
serveur.Servlet_sem.doGet(Servlet_sem.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
Dans mon répertoire \WEB-INF\classes\serveur d'éclipse j'ai les fichiers suivants :
* ServletAppel.class
* Structure.class
* Structure.c
* Structure.h
* Structure.obj
Et dans mon répertoire \WEB-INF\src\serveur, j'ai les fichiers :
* ServletAppel.java
* Structure.java
Que je mette ma librairie Structure.dll dans le répertoire \WEB-INF\classes\serveur ou dans le répertoire \WEB-INF\classes j'ai toujours la même erreur (celle d'en haut) qui est levée lorsque je fais appel au constructeur "Structure()" dans ma servlet "ServletAppel".
Mais lorsque je met ma dll dans le répertoire WINDOWS\system32, l'erreur que j'obtient est :
Citation:
java.lang.UnsatisfiedLinkError: svc
serveur.Structure.svc(Native Method)
serveur.Servlet_sem.doPost(Servlet_sem.java:62)
serveur.Servlet_sem.doGet(Servlet_sem.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
et elle est n'est plus levée lors de l'appel du constructeur mais lors de l'appel à ma méthode native "svc()"
Pourriez-vous me dire s'il y a quelque chose que je fais de mal et si oui, quoi?
Merci d'avance.