Bonjour,
Je débute tout juste avec Hibernate. Je suis donc allé sur le site hibernate.org où j'ai téléchagré la version 3.1 de Hibernate. J'ai suivi les instructions de ce tutoriel http://www.hibernate.org/hib_docs/v3.../tutorial.html.
Je suis donc arrivé jusqu'à la partie 1.2.6 . J'ai donc l'arborescence suivante pour mon projet de test :
Dans mon fichier hibernate.cfg.xml j'ai ça :
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 +HibernateTest . +lib <Hibernate and third-party libraries> +src +events EventManager.java Event.java Event.hbm.xml +util HibernateUtil.java hibernate.cfg.xml log4j.properties +data +bin build.xml
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 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:hsql://localhost</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">create</property> <mapping resource="events/Event.hbm.xml"/> </session-factory> </hibernate-configuration>
et dans mon fichier build.xml j'ai ça :
Je lance donc l'utilitaire Ant pour compiler mon projet avec la ligne suivante (comme conseillé dans le tutoriel sur 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
28
29
30
31
32
33
34
35
36
37
38
39
40 <project name="hibernate-tutorial" default="compile"> <property name="sourcedir" value="${basedir}/src"/> <property name="targetdir" value="${basedir}/bin"/> <property name="librarydir" value="${basedir}/lib"/> <path id="libraries"> <fileset dir="${librarydir}"> <include name="*.jar"/> </fileset> </path> <target name="clean"> <delete dir="${targetdir}"/> <mkdir dir="${targetdir}"/> </target> <target name="compile" depends="clean, copy-resources"> <javac srcdir="${sourcedir}" destdir="${targetdir}" classpathref="libraries"/> </target> <target name="copy-resources"> <copy todir="${targetdir}"> <fileset dir="${sourcedir}"> <exclude name="**/*.java"/> </fileset> </copy> </target> <target name="run" depends="compile"> <java fork="true" classname="events.EventManager" classpathref="libraries"> <classpath path="${targetdir}"/> <arg value="${action}"/> </java> </target> </project>
C:\HibernateTest>ant run -Daction=store
J'obtiens ceci dans la console DOS :
La compilation se passe bien. Le problème vient apparemment du fichier de mapping Event.hbm.xml qu'il n'arrive pas à lire. Pourtant le chemin d'accès est bon je pense.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64 Buildfile: build.xml clean: [delete] Deleting directory C:\HibernateTest\bin [mkdir] Created dir: C:\HibernateTest\bin copy-resources: [copy] Copying 3 files to C:\HibernateTest\bin [copy] Copied 2 empty directories to 1 empty directory under C:\HibernateTest\bin compile: [javac] Compiling 3 source files to C:\HibernateTest\bin run: [java] 11:28:55,775 INFO Environment:479 - Hibernate 3.1.3 [java] 11:28:55,785 INFO Environment:509 - hibernate.properties not found [java] 11:28:55,795 INFO Environment:525 - using CGLIB reflection optimizer [java] 11:28:55,795 INFO Environment:555 - using JDK 1.4 java.sql.Timestamp handling [java] 11:28:55,895 INFO Configuration:1308 - configuring from resource: /hibernate.cfg.xml [java] 11:28:55,895 INFO Configuration:1285 - Configuration resource: /hibernate.cfg.xml [java] 11:28:56,065 INFO Configuration:469 - Reading mappings from resource: events/Event.hbm.xml [java] 11:28:56,235 INFO HbmBinder:309 - Mapping class: Event -> EVENTS [java] Initial SessionFactory creation failed.org.hibernate.MappingException: Could not read mappings from resource: events/Event.hbm.xml [java] Exception in thread "main" java.lang.ExceptionInInitializerError [java] at util.HibernateUtil.<clinit>(Unknown Source) [java] at events.EventManager.createAndStoreEvent(Unknown Source) [java] at events.EventManager.main(Unknown Source) [java] Caused by: org.hibernate.MappingException: Could not read mappings from resource: events/Event.hbm.xml [java] at org.hibernate.cfg.Configuration.addResource(Configuration.java:485) [java] at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465) [java] at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433) [java] at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414) [java] at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390) [java] at org.hibernate.cfg.Configuration.configure(Configuration.java:1310) [java] at org.hibernate.cfg.Configuration.configure(Configuration.java:1296) [java] ... 3 more [java] Caused by: org.hibernate.MappingException: class Event not found while looking for property: id [java] at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:80) [java] at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276) [java] at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:410) [java] at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:343) [java] at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:282) [java] at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:153) [java] at org.hibernate.cfg.Configuration.add(Configuration.java:386) [java] at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427) [java] at org.hibernate.cfg.Configuration.addResource(Configuration.java:482) [java] ... 9 more [java] Caused by: java.lang.ClassNotFoundException: Event [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:200) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:188) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:251) [java] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) [java] at java.lang.Class.forName0(Native Method) [java] at java.lang.Class.forName(Class.java:164) [java] at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:108) [java] at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:76) [java] ... 17 more BUILD SUCCESSFUL Total time: 3 seconds
Quelqu'un pourrait aurait il une idée plus précise d'où le problème peut venir ?
Merci d'avance de votre aide.
Partager