Bonjour,

j'essaye d'accéder a ma base via Hibernate, mais j'ai une erreur :

java.lang.ClassNotFoundException: javax.resource.ResourceException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.connection.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:61)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:124)
at org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:56)
at org.hibernate.cfg.SettingsFactory.createConnectionProvider(SettingsFactory.java:397)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:62)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
at commun.HibernateUtil.<clinit>(HibernateUtil.java:15)
at action.InscriptionAction.execute(InscriptionAction.java:36)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Voici mes fichiers de conf :

- hibernate.cfg.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
 
<?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">F:\pbdb.fdb</property>
		<property name="hibernate.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
		<property name="hibernate.connection.username">SYSDBA</property>
		<property name="hibernate.connection.password">masterkey</property>
 
		<!-- JDBC connection pool (use c3p0) -->
		<property name="c3p0.acquire_increment">1</property> 
		<property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
		<property name="c3p0.max_size">100</property> 
		<property name="c3p0.max_statements">0</property> 
		<property name="c3p0.min_size">2</property> 
		<property name="c3p0.timeout">100</property> <!-- seconds --> 
 
		<!-- dialect for Interbase -->
        <property name="dialect">net.sf.hibernate.dialect.InterbaseDialect</property>
 
        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.use_outer_join">true</property>
        <property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
        <property name="jta.UserTransaction">java:comp/UserTransaction</property>
 
        <mapping resource="hbm/User.hbm.xml"/>
 
    </session-factory>
</hibernate-configuration>
User.hbm.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
 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
 
 <class name="persistence.UserHb" table="T_USERS">
 
 <id name="id" type="integer">
 <column name="ID" sql-type="int" not-null="true"/>
 <generator class="increment" />
 </id>
 
 <property name="nom" type="string">
 <column name="NOM" sql-type="char(20)" not-null="true"/>
 </property>
 
 <property name="prenom" type="string">
 <column name="PRENOM" sql-type="char(20)" not-null="true"/>
 </property>
 
 <property name="age" type="integer">
 <column name="AGE" sql-type="int" not-null="true"/>
 </property>
 
 </class>
 
</hibernate-mapping>
Et mon appel est ici :

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
 
 
package action;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;
 
import persistence.UserHb;
 
import commun.HibernateUtil;
 
import form.InscriptionForm;
 
 
public class InscriptionAction extends Action{
 
	/** 
         * Method execute
         * @param ActionMapping mapping
         * @param ActionForm form
         * @param HttpServletRequest request
         * @param HttpServletResponse response
         * @return ActionForward
         * @throws Exception
         */
 
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
 
		InscriptionForm inscriptionForm = (InscriptionForm) form;
 
		Session session = HibernateUtil.currentSession();
		Transaction tx = session.beginTransaction();
 
		UserHb user = new UserHb();
 
		user.setNom(inscriptionForm.getNom());
		user.setPrenom(inscriptionForm.getPrenom());
		user.setAge(18);
		session.save(user);
 
		tx.commit();
 
		HibernateUtil.closeSession();
 
		return mapping.findForward("succes");
		}
 
 
}
Le probleme survient lorsque j'essaye de recupere la session
Session session = HibernateUtil.currentSession();
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
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
public class HibernateUtil {
 
	private static final SessionFactory sessionFactory;
	private static final ThreadLocal<Session> sessionLocal = new ThreadLocal<Session>();
 
    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            throw new ExceptionInInitializerError(ex);
        }
    }
 
    /**
     * @return current Hibernate session (ThreadLocal)
     * @throws HibernateException
     */
    public static Session currentSession() throws HibernateException {
        Session session = sessionLocal.get();
        // Open a new Session, if this thread has none yet
        if (session == null) {
        	session = sessionFactory.openSession();
            // Store it in the ThreadLocal variable
            sessionLocal.set(session);
        }
        return session;
    }
 
    /**
     * Close current session
     * @throws HibernateException
     */
    public static void closeSession() throws HibernateException {
        final Session session = sessionLocal.get();
        if (session != null)
        {
            session.close();
        }
        sessionLocal.set(null);
    }
 
    /**
     * Close all ressources
     * @throws HibernateException
     */
    public static void close() throws HibernateException {
    	sessionFactory.close();
    }
}
Si qqn a une idée ?

Merci d'avance.