IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Pb Tomcat / Hibernate


Sujet :

Tomcat et TomEE Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 69
    Points : 30
    Points
    30
    Par défaut Pb Tomcat / Hibernate
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    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)
    Idem si je lance une appli Hibernate qui marchait nickel en formation... J'ai dû zappr une config quelque part, au niveau d'Eclipse ou de Tomcat, mais où ?

    Auriez-vous une idée ou une piste ? Merci !

  2. #2
    En attente de confirmation mail
    Inscrit en
    Juin 2008
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 76
    Points : 58
    Points
    58
    Par défaut
    tes explications sont trop vagues, plus de détails seraient les bienvenus...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    C'est que je ne peux pas mettre tout le code de l'appli...

    La ligne de plantage est la suivante (servlet)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public void init() throws ServletException {
    		super.init();
    		System.out.println("Initialisation des besoins");
    		getServletContext().setAttribute("listeBesoins", new ListeBesoins());	
    		//getServletContext().setAttribute("test", new Test());
    Ca marche avec la classe Test (une classe tout bête, voir ligne en commentaire) mais pas ListeBesoins qui est une array d'objets Besoin persistants.

    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. #4
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    En regardant l'erreur :

    java.lang.NoClassDefFoundError: org/hibernate/HibernateException
    tu peux voir qu'il te manque une classe et donc une librairie.

    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. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    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. #6
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    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?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 69
    Points : 30
    Points
    30
    Par défaut
    OK merci, là pour sûr ça fonctionne bien, du coup tout s'enchaine de la jsp jusqu'a Hibernate en passant par la servlet et feuille xsl, un vrai bonheur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TOMCAT][HIBERNATE] pool de connection
    Par grelon dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 02/10/2007, 16h08
  2. Tomcat hibernate annotation DAO probleme mapping
    Par bibi73 dans le forum Hibernate
    Réponses: 20
    Dernier message: 20/08/2007, 14h40
  3. Tomcat - Hibernate objets DB et Web séparés
    Par Javix dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/08/2007, 09h42
  4. [Tomcat]Hibernate eclipse et TOMCAT
    Par Pck dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 25/10/2005, 09h32
  5. [Tomcat][hibernate] Pb initialisation hibernate.cfg.xml
    Par the.chojin dans le forum Tomcat et TomEE
    Réponses: 15
    Dernier message: 11/02/2005, 18h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo