I'm trying to verify rollbacks are working ok in my setup, so I've written a business method in my session EJB that starts with
myJavaxEjbSessionContext.setRollbackOnly();
When trying to save and flush, I get a synch related exception[1] saying "could not register synchronization with JTA TransactionManager". My conf [2] includes a property hibernate.transaction.factory_class, a hibernate.transaction.manager_lookup_class and a jta.UserTransaction. Can someone please tell me what am i missing here?
[1]
java.rmi.ServerException: EJBException:; nested exception is:
javax.ejb.EJBException: null; CausedByException is:
could not register synchronization with JTA TransactionManager
org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:347)
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)
org.jboss.ejb.Container.invoke(Container.java:723)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:97)
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:53)
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
$Proxy42.testHibernate(Unknown Source)
org.apache.jsp.testEjb_jsp._jspService(testEjb_jsp.java:64)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
[2]
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property>
<property name="use_outer_join">true</property>
<property name="property hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
<property name="hibernate.transaction.manager_lookup_class">net.sf.hibernate.transaction.JBossTransactionManagerLookup</property>
<property name="jta.UserTransaction">UserTransaction</property>
|