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

Hibernate Java Discussion :

Hibernate (JPA+Annotations) : mon appli Tomcat ne trouve pas le persistence.xml


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut Hibernate (JPA+Annotations) : mon appli Tomcat ne trouve pas le persistence.xml
    Bonjour,

    Je travaille avec le tutoriel JPA de Serge Tahe (excellent par ailleurs).

    J'ai fait fonctionné les exemples "standalone".
    A présent, j'essaye d'appliquer Hibernate (mode JPA+annotations) à une application web simple.

    Je crée correctement la base depuis les classes Entités.

    Quand j'exécute :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
    	    			// récupérer un EntityManager à  partir de l'EntityManagerFactory
    	    			EntityManager em = emf.createEntityManager();
    	    			// début transaction
    	    			EntityTransaction tx = em.getTransaction();
    	    			tx.begin();
    J'ai le message d'erreur :

    javax.servlet.ServletException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    Si, dans mon exemple en mode console, je renomme ou déplace le fichier persistence.xml, j'obtiens exactement la même erreur.

    Celà me laisse penser que l'application Tomcat ne trouve pas mon fichier persistence.xml. Je le place pourtant dans [racine_appli]/build/classes/META-INF.

    Où faudrait-il donc le mettre ? Ou comment définir sont emplacement ?

    D'avance merci.

    Cordialement,

    Pascal

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Dans un environnement web, persistence.xml va plutôt dans WEB-INF/classes/META-INF.

    Bonne chance.

  3. #3
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Malheureusement, le fichier persistence.xml se trouve bien, dans le WAR exporté, dans ./WEB-INF/classes/META-INF.

    Je colle une capture d'écran pour montrer l'arborescence du projet.

    Je suis vraiment dans l'impasse avec ce problème.

    Où mettre ce fichu fichier ? A moins que le problème vienne d'ailleurs, ou qu'il faille déclarer quelquechose que m'ait échappé ?

    Please, help !

    Pascal
    Images attachées Images attachées  

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    En fait, tu t'es trompé d'erreur: c'est pas ce que tu as dit (pas de persistence.xml) mais plutôt une erreur de configuration ! t'aurais du aller plus bas dans le stackTrace pour trouver la vrai cause !

    Donc, Hibernate se complaigne du fait que le dialect n'est pas indiqué.

    Dans persistence.xml et dans <properties>, tu mets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <property name="hibernate.dialect"
                       value="org.hibernate.dialect.MySQLDialect"/>
    Si tu utilises MYSQL par exemple.

    Bonne chance.

  5. #5
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    J'aurais aimé que tu aies raison, mais le Dialect est bien spécifié dans le persistence.xml, de la même façon que tu me l'indiques (mais pour PostGRES).

    D'ailleurs ce même fichier fonctionne très bien dans le cas d'une application console.

    Le voici :

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="osiris_cms_01" transaction-type="RESOURCE_LOCAL">
    <!-- provider -->
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
    <!-- Classes persistantes -->
    <property name="hibernate.archive.autodetection" value="class, hbm" />

    <!-- PostgreSQL -->
    <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
    <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/osiris_cms_01" />
    <property name="hibernate.connection.username" value="xxxxxxxxxxx" />
    <property name="hibernate.connection.password" value="xxxxxx" />

    <!-- création automatique du schéma -->
    <property name="hibernate.hbm2ddl.auto" value="create" />
    <!-- Dialecte -->

    <!-- PostgreSQL -->
    <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />

    <!-- propriétés DataSource c3p0 -->
    <property name="hibernate.c3p0.min_size" value="5" />
    <property name="hibernate.c3p0.max_size" value="20" />
    <property name="hibernate.c3p0.timeout" value="300" />
    <property name="hibernate.c3p0.max_statements" value="50" />
    <property name="hibernate.c3p0.idle_test_period" value="3000" />
    </properties>
    </persistence-unit>
    </persistence>

  6. #6
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Et si je supprime ce même fichier de mon appli console, j'obtiens la même erreur (Dialecte non-spécifié...)...

    ...ce qui me fait dire que l'appli Tomcat ne le trouve pas. Mais je peux me tromper. D'ailleurs, je commence à le croire.

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
    Le nom de ta persistence unit n'est pas jpa mais plutôt osiris_cms_01.
    Change le nom pour voir.

  8. #8
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Waooooooouuuuuuuuuuuuuuuuuuuuuuuu !!!

    Je suis vraiment trop nul !
    Ca passe à présent. Quel soulagement !

    Je sais vraiment pas comment vous remercier.
    Struts2+JPA, ça fait deux choses nouvelles à la fois, et c'est pas toujours évident de s'y retrouver.

    Merci !

    Pascal

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

Discussions similaires

  1. Mon applet signée ne trouve pas le .class
    Par ptr83 dans le forum Applets
    Réponses: 6
    Dernier message: 24/06/2009, 09h50
  2. Tomcat ne trouve pas mes servlets
    Par squeezen123 dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 29/05/2008, 20h43
  3. Mon appli D2006 ne tourne pas sur un autre PC
    Par Cazaux-Moutou-Philippe dans le forum EDI
    Réponses: 5
    Dernier message: 24/04/2006, 16h26
  4. [WSAD][tomCat]ne trouve pas le compilo ???
    Par Gromitou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 06/02/2006, 08h34
  5. [Tomcat]Tomcat ne trouve pas les driver mysql
    Par Lash3r dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 06/01/2006, 01h12

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