![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2003
Messages: 63
|
Hello, j'ai un soucis avec Tomcat et Hibernate sous Eclipse
Depuis une JSP j'invoque une servlet qui fait appel à un objet mappé avec Hibernate. Le code Java/Hibernate fonctionne parfaitement en tant que "J2EE application" sans passer par Tomcat (exécution depuis le main de la classe) Tomcat fonctionne aussi lorsque ma servlet fait appel à des objets non persistents. Mais dès que j'invoque un objet mappé j'ai l'erreur suivante : Code :
Etat HTTP 500 - -------------------------------------------------------------------------------- type Rapport d'exception message description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête. exception javax.servlet.ServletException: "Servlet.init()" pour la servlet LoginServlet a généré une exception org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) java.lang.Thread.run(Unknown Source) cause mère java.lang.NoClassDefFoundError: org/hibernate/HibernateException fr.sogeti.rh.servlet.LoginServlet.init(LoginServlet.java:28) javax.servlet.GenericServlet.init(GenericServlet.java:212) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) java.lang.Thread.run(Unknown Source) cause mère java.lang.ClassNotFoundException: org.hibernate.HibernateException org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206) java.lang.ClassLoader.loadClassInternal(Unknown Source) fr.sogeti.rh.servlet.LoginServlet.init(LoginServlet.java:28) javax.servlet.GenericServlet.init(GenericServlet.java:212) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) java.lang.Thread.run(Unknown Source) Auriez-vous une idée ou une piste ? Merci ! |
|
|
|
|
|
#3 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2003
Messages: 63
|
C'est que je ne peux pas mettre tout le code de l'appli...
La ligne de plantage est la suivante (servlet) Code :
public void init() throws ServletException { super.init(); System.out.println("Initialisation des besoins"); getServletContext().setAttribute("listeBesoins", new ListeBesoins()); //getServletContext().setAttribute("test", new Test()); La classe ListeBesoins n'est pas persistante, et d'ailleurs si je la définis comme étant une array d'objets Test non persistants ça ne plante pas... |
|
|
|
|
|
#4 (permalink) | |
|
Membre éclairé
![]() Date d'inscription: janvier 2004
Messages: 320
|
En regardant l'erreur :
Citation:
Dans ton projet , dans le dossier WEB-INF/lib, tu dois avoir la librairie hibernate.jar, vérifie
__________________
Pensez au tag Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php? |
|
|
|
|
|
|
#5 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2003
Messages: 63
|
Hello,
Merci pour tes conseils avisés, ça marche ![]() J'avais bien galéré et enfin c'est débloqué ! Mais explique-moi stp, les librairies on les met dans Libraries via le Java Build Path, alors pourquoi les mettre aussi "en dur" dans Web-Inf\lib ? Je ne comprends pas bien la différence... |
|
|
|
|
|
#6 (permalink) |
|
Membre éclairé
![]() Date d'inscription: janvier 2004
Messages: 320
|
Le Java Build Path sert pour Eclipse (compilation, exécution des tests...). Et c'est pourquoi ton appli marchait dans Eclipse. Mais ce n'est pas le classpath pour Tomcat.
Ce qu'il faut faire : - mettre les librairies dont tu as besoins dans WEB-INF/lib - Dans Eclipse, aller dans JavaBuilPath/Librairies, cliquer sur Add Jars..., et sélectionner les .jar qui sont dans "nom_du_projet/WEB-INF/lib" Quand tu déploie ton application dans Tomcat, toutes les librairies qui sont dans le dossier WEB-INF/lib vont être automatiquement ajoutées au Classpath... Et ton application fonctionnera
__________________
Pensez au tag Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php? |
|
|
|
![]() |
![]() |
||
Pb Tomcat / Hibernate
|
||
| Outils de la discussion | |
|
|