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 éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    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 ...

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    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 éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    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?

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

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    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 éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    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

  6. #6
    Membre éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    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

+ 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