Bonjour,
Après quelques mois sur JDBC, je me suis mis à Hibernate 3.0 (enfin, mon patron me l'impose). Je tente depuis la semaine dernière de faire tourner une maquette, je me heurte sans arrêt à l'exception suivante
J'ai cherché sur le net et sur ce forum d'autres posts à ce sujet, je n'ai pas trouvé la solution. Et pourtant, comme dirait maître Yoda, "certain je suis que la solution sous mes yeux est".
L'exception indique que je dois mettre l'attribut "name" à la balise <session-factory>, mais pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Exception in thread "main" org.hibernate.HibernateException: problem parsing configuration/hibernate.cfg.xml at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1173) at org.hibernate.cfg.Configuration.configure(Configuration.java:1112) at org.hibernate.cfg.Configuration.configure(Configuration.java:1098) at exe.Principale.main(Principale.java:19) Caused by: org.dom4j.DocumentException: Error on line 2 of document : A pseudo attribute name is expected. Nested exception: A pseudo attribute name is expected. at org.dom4j.io.SAXReader.read(SAXReader.java:482) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1168) ... 3 more
Le fichier hibernate.hbm.xml est le suivant :
Je ne comprends pas pourquoi je dois mettre un attribut name à la balise <session-factory> alors que je suis en hibernate3... (le fichier MANIFEST.MF indique "Hibernate-Version: 3.0.5")
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 <?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"> <hibernate-configuration> <session-factory> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/championnat</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">justdoit</property> <property name="show_sql">true</property> <!-- Mapping --> <mapping resource="/src/champ/Personne.hbm.xml"/> </session-factory> </hibernate-configuration>
Autre précision : je n'utilise pas JNDI. Du moins, pour le moment
Le fichier Personne.hbm.xml :
Enfin, la classe Principale.java très simplifiée :
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 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "~//Hibernate/Hibernate Mapping DTD 3.0//EN" "/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="Personne" table="PERSONNE"> <id name="OID" column="OID"> <generator class="increment"/> </id> <property name="nom"/> <property name="prenom"/> <property name="dateNaissance" type="timestamp" column="DATE_NAISSANCE"/> <property name="licence"/> <property name="arbitre" column="ESTARBITRE"/> <property name="joueur" column="ESTJOUEUR"/> <property name="president" column="ESTPRESIDENT"/> </class> </hibernate-mapping>
Si quelqu'un pouvait m'éclairer sur le pourquoi de cette exception, je l'en remercie d'avance. Il est évident que je n'ai pas tout compris d'Hibernate...
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 package exe; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class Principale { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Configuration configuration; Session session; SessionFactory sessionFactory; //try { configuration = new Configuration(); sessionFactory = configuration.configure().buildSessionFactory(); session = sessionFactory.openSession(); /*} catch (Exception e) { System.out.println(e.toString()); }*/ } }
Partager