ClassNotFoundException ResourceException
Bonjour,
j'essaye d'accéder a ma base via Hibernate, mais j'ai une erreur :
Citation:
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:
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:
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:
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
Citation:
Session session = HibernateUtil.currentSession();
HibernateUtil.java :
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 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.