I'm having problems configuring hibernate to work with JNDI. I suppose my .cfg file is correct, because i've been reading the documentations. Maybe there's something missing, or something i didn't understand. Anyway, the problem is about transactions.
The exception:
Code:
org.hibernate.TransactionException: Could not find UserTransaction in JNDI:
org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:53)
org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:177)
org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1279)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1289)
br.com.ReportWizardAdmin.action.categoria.IncluirCategoriaAction.execute(IncluirCategoriaAction.java:95)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
In line, where Session s is properly initialized:
Code:
Transaction tx = s.beginTransaction();
My .cfg file:
Code:
<hibernate-configuration>
<session-factory name="java:comp/env/hibernate/SessionFactory">
<property name="hibernate.connection.datasource">java:/comp/env/jdbc/ReportWizardAdmin</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
<property name="transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
<property name="jta.UserTransaction">java:comp/UserTransaction</property>
<!-- Mapping files not listed here -->
</session-factory>
</hibernate-configuration>
Using Hibernate 3 and Oracle 8.