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 ExceptionInInitializerError dans la création d'une session factory hibernate


Sujet :

Hibernate Java

  1. #1
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut erreur ExceptionInInitializerError dans la création d'une session factory hibernate
    Bonjour à tous .J'etaii en train de faire le tutorial d'hibernate
    mais je suis bloqué avec un probléme que j'ai été incapable de résoudre.
    Voici la config

    fichier config hubernate
    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
    <hibernate-configuration>
    	<session-factory>
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">
    			jdbc:mysql://localhost:3306/personne
    		</property>
    		<property name="hibernate.connection.driver_class">
    			com.mysql.jdbc.Driver
    		</property>
    		<property name="hibernate.connection.username">root</property>
    		<property name="hibernate.connection.password">mysql</property>
    		<!-- dialect for MySQL -->
    		<property name="dialect">
    			org.hibernate.dialect.MySQLDialect
    		</property>
    		<property name="hibernate.show_sql">true</property>
    		<property name="hibernate.transaction.factory_class">
    			org.hibernate.transaction.JDBCTransactionFactory
    		</property>
    		<!-- Enable Hibernate's automatic session context management -->
                    <property name="current_session_context_class">thread</property>
       	        <mapping resource="hibernate/Personne.hbm" />
     	        <mapping resource="hibernate/TContact.hbm" />
    	</session-factory>
    </hibernate-configuration>
    TContact.hbm
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
    <hibernate-mapping package="hibernate">
    	<class
    		name="TContact"
    		table="t_contact"
    	>
    		<meta attribute="sync-DAO">true</meta>
    		<property
    			name="Id"
    			column="id"
    			type="integer"
    			not-null="true"
    			length="10"
    		/>
    		<property
    			name="Nom"
    			column="nom"
    			type="string"
    			not-null="false"
    			length="45"
    		/>
    		<property
    			name="Prenom"
    			column="prenom"
    			type="string"
    			not-null="false"
    			length="45"
    		/>
    		<property
    			name="Age"
    			column="age"
    			type="integer"
    			not-null="false"
    			length="10"
    		/>
    	</class>	
    </hibernate-mapping>
    HibernateUtil.java
    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
    package test;
     
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
     
    public class HibernateUtil {
     
        private static final SessionFactory sessionFactory = buildSessionFactory();
     
        private static SessionFactory buildSessionFactory() {
            try {
                // Create the SessionFactory from hibernate.cfg.xml
                return new Configuration().configure().buildSessionFactory();
            }
            catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
     
    }
    eventManager.java (classe de test)
    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
    package hibernate;
     
     
    import org.hibernate.Session;
     
    import test.HibernateUtil;
     
     
    public class EventManager {
     
        public static void main(String[] args) {
     
            Session session = HibernateUtil.getSessionFactory().getCurrentSession();
            session.beginTransaction();
           TContact contact = new TContact();
       	 	contact.setNom("Dupont");
       	 	contact.setPrenom("Jean");
       	 	contact.setAge(new Integer(44));
       	 	session.save(contact);
            session.getTransaction().commit();
     
            HibernateUtil.getSessionFactory().close();
        }
    }
    et l'erreur généré sur la 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    125 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
    140 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.0.Final
    140 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
    140 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
    156 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
    218 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
    218 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
    281 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: /hibernate.cfg.xml(2) Document is invalid: no grammar found.
    281 [main] ERROR org.hibernate.util.XMLHelper - Error parsing XML: /hibernate.cfg.xml(2) Document root element "hibernate-configuration", must match DOCTYPE root "null".
    Initial SessionFactory creation failed.org.hibernate.MappingException: invalid configuration
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at test.HibernateUtil.buildSessionFactory(HibernateUtil.java:19)
    	at test.HibernateUtil.<clinit>(HibernateUtil.java:9)
    	at hibernate.EventManager.main(EventManager.java:15)
    Caused by: org.hibernate.MappingException: invalid configuration
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2211)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:2128)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:2107)
    	at test.HibernateUtil.buildSessionFactory(HibernateUtil.java:14)
    	... 2 more
    Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2208)
    	... 5 more
    Cela fait 4jours que je cogite sur la même erreur.
    Merci de votre aide ...
    Ne testez jamais une erreur que vous ne savez pas gérer.
    de ne pas oublier

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Salut,
    Peut-être en ajoutant ceci au début de ton fichier de config hibernate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    (Il cherche une grammaire qu'il ne trouve pas)

  3. #3
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Merci beaucoup gailuris
    Now je l'ai ajouté mais il me signale une autre erreur sur le mapping

    Voici le log
    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
    49
    50
    125 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final
    141 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.0.Final
    141 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
    141 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
    156 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
    219 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
    219 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
    313 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : hibernate/Personne.hbm
    391 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : hibernate/TContact.hbm
    438 [main] ERROR org.hibernate.util.xml.ErrorLogger - Error parsing XML (43) : The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
    469 [main] ERROR org.hibernate.util.xml.ErrorLogger - Error parsing XML (2) : The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
    Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at test.HibernateUtil.buildSessionFactory(HibernateUtil.java:19)
    	at test.HibernateUtil.<clinit>(HibernateUtil.java:9)
    	at hibernate.EventManager.main(EventManager.java:13)
    Caused by: org.hibernate.InvalidMappingException: Unable to read XML
    	at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:101)
    	at org.hibernate.cfg.Configuration.add(Configuration.java:510)
    	at org.hibernate.cfg.Configuration.add(Configuration.java:506)
    	at org.hibernate.cfg.Configuration.add(Configuration.java:686)
    	at org.hibernate.cfg.Configuration.addResource(Configuration.java:771)
    	at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2314)
    	at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2280)
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2260)
    	at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2213)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:2128)
    	at org.hibernate.cfg.Configuration.configure(Configuration.java:2107)
    	at test.HibernateUtil.buildSessionFactory(HibernateUtil.java:14)
    	... 2 more
    Caused by: org.xml.sax.SAXParseException: The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    	at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:75)
    	... 13 more
    Tu ne saurais pas par hasard à quoi ce serai due?
    Ne testez jamais une erreur que vous ne savez pas gérer.
    de ne pas oublier

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Lol je l'avais vu sans etre sur que ça générerait une erreur (et j'espérais que tu la trouverais).
    Je pense qu'il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<property name="Id" column="id" type="integer" not-null="true"
    			length="10" />
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		<id name="Id" column="id" type="integer"
    			length="10"/>
    Chaque entité a besoin d'un ID

  5. #5
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Encore merci une fois de plus ... lol (j'ai pas encore pris mon déjeuner mais la je crois que je devrais )

    Mais la juste une question j'ai comme l'impression que libernate 3 ne gére pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <generator class="vm"/>
    Si on veut que le chant soit auto-increment géré par hibernate par quoi dois je le remplacer
    Ne testez jamais une erreur que vous ne savez pas gérer.
    de ne pas oublier

  6. #6
    Membre actif Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Points : 270
    Points
    270
    Par défaut
    Oups merci j'ai vu
    >
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <generator class="increment" />
    Merci beaucoup gailuris tu m'a été d'un tres grand secours today
    Ne testez jamais une erreur que vous ne savez pas gérer.
    de ne pas oublier

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2007, 18h47
  2. Contrainte de date dans la création d'une table
    Par snoopy69 dans le forum Administration
    Réponses: 1
    Dernier message: 21/11/2006, 10h16
  3. Réponses: 1
    Dernier message: 18/08/2006, 14h49
  4. Réponses: 4
    Dernier message: 21/02/2006, 16h47
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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