Bonjour,
j'essaye d'accéder a ma base via Hibernate, mais j'ai une erreur :
Voici mes fichiers de conf :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)
- hibernate.cfg.xml :
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
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>
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 <?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>
Le probleme survient lorsque j'essaye de recupere la session
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"); } }HibernateUtil.java :Session session = HibernateUtil.currentSession();
Si qqn a une idé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
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(); } }
Merci d'avance.
Partager