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 :

Erreur dans HibernateUtil.java


Sujet :

Hibernate Java

  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut Erreur dans HibernateUtil.java
    Je suis debutant sous Hibernante. Pour test, j'ai adopte une base Mysql.
    J'ai une conexion avec la base qui marche et bien un ficheir de mapping.
    Le probleme est dans un le ficheir HibernateUtil qui cree la session.
    Il me sigale une erreur dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sessionFactory =
    	 new Configuration().configure().buildSessionFactory()
    et aussi au niveau de la classe de test sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session session = HibernateUtil.currentSession();
    Quelle est la situation a adopter ?

    Merci de vos aides

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Est ce que tu pourrais préciser quelles erreurs tu as, et à quel moment?

    A+

  3. #3
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut
    Merci eric,

    l'erreur qu'il me signale est la suivante sur la partie console;

    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
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 2.1.6
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Environment <clinit>
    INFO: using CGLIB reflection optimizer
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Configuration configure
    INFO: configuring from resource: /hibernate.cfg.xml
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    INFO: Configuration resource: /hibernate.cfg.xml
    déc. 14, 2012 1:38:21 PM net.sf.hibernate.cfg.Configuration getConfigurationInputStream
    WARNING: /hibernate.cfg.xml not found
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at phibernate.Test.main(Test.java:16)
    Caused by: java.lang.RuntimeException: Problème de configuration : /hibernate.cfg.xml not found
    	at phibernate.HibernateUtil.<clinit>(HibernateUtil.java:16)
    	... 1 more
    Caused by: net.sf.hibernate.HibernateException: /hibernate.cfg.xml not found
    	at net.sf.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:872)
    	at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:896)
    	at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:883)
    	at phibernate.HibernateUtil.<clinit>(HibernateUtil.java:14)
    	... 1 more
    
    il me le fait des que je fais un RUN sur la classe Test qui est la 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
    package phibernate;
     
    import java.util.*;
    import net.sf.hibernate.*;
     
     
    public class Test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) throws HibernateException
    	{
    		// TODO Auto-generated method stub
     
    		Session session = HibernateUtil.currentSession();
     
    		Transaction tx = session.beginTransaction();
     
    		fournisseur fr=new fournisseur();
    		fr.setFO_ID(150);
    		fr.setNOM_FO("The High Ground");
    		fr.setRUE("100 Coffee Lane");
    		fr.setVille("Meadows");
    		fr.setEtat("CA");
    		fr.setCode_postale("93966");
    		session.save(fr);
    		tx.commit();
    		HibernateUtil.closeSession();
     
     
    	}
     
    }
    ma classe HibernateUtil est la 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
    package phibernate;
     
    import net.sf.hibernate.*;
    import net.sf.hibernate.cfg.*;
     
    public class HibernateUtil {
     
    	public static final SessionFactory sessionFactory;
     
     static {
       try {
       // Crée la SessionFactory
       sessionFactory =
    	 new Configuration().configure().buildSessionFactory();
       } catch (HibernateException ex) {
       throw new RuntimeException("Problème de configuration : "
       + ex.getMessage(), ex);
       }
       }
     
     public static final ThreadLocal session = new ThreadLocal();
     
     public static Session currentSession()
    		throws HibernateException {
       Session s = (Session) session.get();
       // Ouvre une nouvelle Session, si ce Thread n'en a aucune
       if (s == null) {
       s = sessionFactory.openSession();
       session.set(s);
       }
       return s;
       }
     
     public static void closeSession()
    		throws HibernateException {
       Session s = (Session) session.get();
       session.set(null);
       if (s != null)
       s.close();
       }
     }
    Mon fichier de configuation hibernate.cfg.xml est la 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
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration
        PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
     
    <hibernate-configuration>
    	<session-factory>
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">
    			jdbc:mysql://127.0.0.1:3306/coffee
    		</property>
    		<property name="hibernate.connection.driver_class">
    			com.mysql.jdbc.Driver
    		</property>
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password" />
    		<!-- property name="hibernate.connection.pool_size"></property -->
    		<!-- dialect for DB2 -->
    		<property name="dialect">
    			org.hibernate.dialect.MySQLDialect
    		</property>
    		<property name="hibernate.show_sql">false</property>
    		<property name="hibernate.use_outer_join">true</property>
    		<!--
    			<property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
    			<property name="jta.UserTransaction">java:comp/UserTransaction</property>
    		//-->
    		<property name="hibernate.transaction.factory_class">
    			org.hibernate.transaction.JDBCTransactionFactory
    		</property>
    		<mapping resource="Fournisseur.hbm" />
    		<mapping resource="Cafe.hbm" />
    	</session-factory>
    </hibernate-configuration>
    Merci d'une solution

    Cordialement

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Sans donner l'erreur, difficile de t'aider.
    Essaye de passer le path du fichier de configuration de hibernate.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     new Configuration().configure("/src/hibernate.cfg.xml").buildSessionFactory();
    Sinon, comment est structuré ton projet?

    A+.

  5. #5
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut
    Bonjour,
    Mon projet est structure comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MonpremierProjet
         src
              phibernate
                      HibernateUtil.java
                      hibernate.cfg.xml
                      Test.java
                      cafe.hbm
                      fournisseur.hbm 
                      fournisseur.java
                       cafe.java
     
              phibernate.base
              phibernate.dao
    Donc, j'ai créé le packagee phibernate alors que les autres packages phibernate.base et phibernate.dao sont générés par HibernateSynchroniser.

    voici la structure. il ya dautres packages dans le projet
    je ne sais pas si c'est un probleme de chemins ou non.

    Merci pour une solution.

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Oui, c'est un problème de chemin.

    Le fichier 'hibernate.cfg.xml' n'est pas trouvé lors de l'exécution de ton programme.
    Est ce que ce fichier est présent (et où) dans l'arborescence des fichiers compilés?

    A+

  7. #7
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut
    Bonjour,

    Ce fichier est present. Il est dans le premier package phibernate sur l'arborescence ci-dessous.

    C'est le deuxieme fichier dans le package phibernate. Son chemin absolu est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MompremierProjet/src/phibernate/hibernate.cfg.xml
    L'arborescence est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    MonpremierProjet
         src
              phibernate
                      HibernateUtil.java
                      hibernate.cfg.xml
                      Test.java
                      cafe.hbm
                      fournisseur.hbm 
                      fournisseur.java
                       cafe.java
     
              phibernate.base
              phibernate.dao
    Merci de vos aides

    Cdlment

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Oui, mais ce que je veux dire c'est que ce fichier est lu lors de l'exécution du programme, il doit dont aussi est 'visible' dans le path d'exécution, enfin je suppose

    Donc dans la partie source c'est bien et nécessaire, mais il doit aussi être dans la partie compilée (où se situe les fichiers .class généré lors de la compilation). Donc ce fichier doit être copier lors de la compilation.

    Avec quel outil développes tu? Car je suppose que les IDE font une copie directement dans la structure de compilation

    a+

  9. #9
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut
    Ok je vois.

    Je développe sous Eclipse avec HibernateSyncroniser installé

    Et pourtant le fichier de conf (hibernate.cfg.xml) est dans le même package que le ficheir Test(celui qui a la fonction main).

    Tout le probleme est sur cette ligne en gras

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public static final SessionFactory sessionFactory;
    sessionFactory = new Configuration().configure().buildSessionFactory();
    Merci de vos aides

    Cdlment

  10. #10
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Je pense que ton fichier devrait:
    • Soit se situer à la racine (et donc exister aussi dans le répertoire bin de Eclipse).

    • Soit passer le chemin en paramètre de la méthode 'configure'.

    • Soit se situer dans le répertoir 'WEB_INF/classes' si tu utilises une application web.


    A+

  11. #11
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 254
    Par défaut
    Bonjour,

    il voit maintenant le fichier de configuration.
    Mais, il me signale l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at Test.main(Test.java:10)
    Caused by: java.lang.RuntimeException: Problème de configuration : Error reading resource: Fournisseur.hbm


    D'ou un problème au niveau du fichier de mapping Fournisseur.hbm

    voici son contenu

    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="com.minosis.hibernate">
    	<class name="fournisseur" table="fournisseur">
     
       <id name="FO_ID" type="integer">
       <column name="FO_ID" sql-type="int(11)"/>
     
       </id>
        <property name="NOM_FO" type="string">
     <column name="NOM_FO" sql-type="VARCHAR(32)" />
     </property>
     
    <property name="RUE" type="string">
     <column name="RUE" sql-type="VARCHAR(32)" />
     </property>
     
    <property name="Ville" type="string">
     <column name="Ville" sql-type="VARCHAR(32)" />
     </property>
     
    <property name="Etat" type="string">
     <column name="Etat" sql-type="VARCHAR(32)" />
     </property>
     
    <property name="Code_postale" type="string">
     <column name="Code_postale" sql-type="VARCHAR(32)" />
     </property>
    </class>
    </hibernate-mapping>
    Si vous pouvez m'aidez a détecter ce qui est incorrecte dedans ?
    Merci d'une solution

  12. #12
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Est ce que tu es sur que le message d'erreur retourné par Hibernate, n'est pas plus long....
    Si tu peux donner l'intégralité du message d'erreur, je pense que ça pourrait nous donner plus d'infos,

    A+

  13. #13
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    y'a peut être une mauvaise correspondance entre le fichier fournisseur.hbm et la table de la base de données.
    l'initialisation n'a pas pu donc être effectuée.

Discussions similaires

  1. erreur dans R.java
    Par perloutta dans le forum Android
    Réponses: 8
    Dernier message: 26/04/2010, 11h16
  2. erreur dans le code java
    Par aroua dans le forum Général Java
    Réponses: 4
    Dernier message: 10/04/2008, 09h26
  3. [EXCEPTION_ACCESS_VIOLATION] erreur dans java hotspot
    Par biozaxx dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/11/2007, 11h23
  4. erreur dans mon code "java.lang.NullPointerException"
    Par wiss20000 dans le forum Langage
    Réponses: 12
    Dernier message: 19/04/2007, 09h08
  5. erreur dans programme java sur des vecteurs 3D
    Par HighSchool2005 dans le forum Langage
    Réponses: 18
    Dernier message: 15/02/2007, 16h38

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