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 :
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
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
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 :

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>
Je lance donc l'utilitaire Ant pour compiler mon projet avec la ligne suivante (comme conseillé dans le tutoriel sur Hibernate) :

C:\HibernateTest>ant run -Daction=store

J'obtiens ceci dans la console DOS :

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
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.

Quelqu'un pourrait aurait il une idée plus précise d'où le problème peut venir ?

Merci d'avance de votre aide.