NoClassDefFoundError Transaction Synchronisation
Bonjour,
Je débute sur Hibernate et je cherche dans un premier temps à réaliser un test.
En suivant les différents tutoriels du net je bute toujours sur un problème qui est le suivant:
Code:
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
| java.lang.NoClassDefFoundError: javax/transaction/Synchronization
at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:213)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:471)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:495)
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:503)
at mapping.base.HibernateUtil.currentSession(HibernateUtil.java:28)
at test.PriseTest.testPriseLot(PriseTest.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) |
Je vous met ici les différents fichiers que j'utilise, surtout le fichier de config, je pense que ça vient de là...
Mon hibernate.cfg.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?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 >
<!-- local connection properties -->
<property name="hibernate.connection.url">jdbc:mysql://fr-wcs-d-00040:3306/nomBase</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.username">utilisateur</property>
<property name="hibernate.connection.password">****</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- dialect for MySQL -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<mapping resource="Lot.hbm.xml"/>
</session-factory>
</hibernate-configuration> |
Mon Lot.hbm.xml
Code:
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
| <?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="mapping">
<class
name="Lot"
table="lot"
>
<meta attribute="sync-DAO">false</meta>
<id
name="Id"
type="string"
column="id_Lot"
>
<generator class="identity"/>
</id>
<property
name="LibelleLot"
column="libelleLot"
type="string"
not-null="true"
length="255"
/>
<property
name="UserMaj"
column="userMaj"
type="string"
not-null="true"
length="255"
/>
<property
name="DateMaj"
column="dateMaj"
type="date"
not-null="false"
/>
</class>
</hibernate-mapping> |
et mon fichier java PriseTest:
Code:
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
| package test;
import static org.junit.Assert.assertTrue;
import java.util.Iterator;
import mapping.Lot;
import mapping.base.HibernateUtil;
import org.hibernate.*;
import org.junit.Test;
public class PriseTest {
@Test
public final void testPriseLot() throws HibernateException {
Session session = HibernateUtil.currentSession();
Query query = session.createQuery("select * from lot");
for (Iterator it = query.iterate(); it.hasNext();) {
Lot lot = (Lot) it.next();
System.out.println(lot.getLibelleLot());
}
HibernateUtil.closeSession();
assertTrue(true);
}
} |
Voilà, si vous avez besoin d'autres précisions je m'empresserai de vous les trouver.
Merci d'avance. :?