Atomikos,Hibernate 4/5,Spring 4,Jetty-无法找到当前的JTA事务
我尝试了许多不同的解决方案,但遇到了一个例外: org.hibernate.HibernateException:无法定位当前JTA事务 我正在使用Atomikos、Hibernate4/5、Spring4和Jetty 如何配置Spring4+Hibernate4/5(非JPA) Atomikos文档只有一个JPA示例 如果有一个工作示例(非JPA、非JEE应用服务器),我将不胜感激 此示例更改了非JPA:Atomikos,Hibernate 4/5,Spring 4,Jetty-无法找到当前的JTA事务,spring,hibernate,jta,atomikos,Spring,Hibernate,Jta,Atomikos,我尝试了许多不同的解决方案,但遇到了一个例外: org.hibernate.HibernateException:无法定位当前JTA事务 我正在使用Atomikos、Hibernate4/5、Spring4和Jetty 如何配置Spring4+Hibernate4/5(非JPA) Atomikos文档只有一个JPA示例 如果有一个工作示例(非JPA、非JEE应用服务器),我将不胜感激 此示例更改了非JPA: <context:annotation-config /> <co
<context:annotation-config />
<context:component-scan base-package="com.atomikos.icatch.jta.hibernate4" />
<tx:annotation-driven transaction-manager="transactionManager" mode="proxy" proxy-target-class="false" />
<aop:aspectj-autoproxy />
<!-- Construct Atomikos UserTransactionManager, needed to configure Spring -->
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" depends-on="dataSource">
<property name="forceShutdown" value="true" />
</bean>
<!-- Also use Atomikos UserTransactionImp, needed to configure Spring -->
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout" value="300" />
</bean>
<!-- by default : looks for java:comp/UserTransaction -->
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="atomikosUserTransaction"></property>
<property name="transactionManager" ref="atomikosTransactionManager"></property>
</bean>
<bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
destroy-method="close" init-method="init" >
<property name="uniqueResourceName" value="atomikos-standalone" />
<property name="maxPoolSize" value="10" />
<property name="minPoolSize" value="5" />
<property name="testQuery" value="SELECT 1" />
<property name="xaDataSource" ref="xaReferent" />
</bean>
<bean id="xaReferent" class="org.h2.jdbcx.JdbcDataSource">
<property name="URL" value="jdbc:h2:~/test-db;MODE=PostgreSQL;MVCC=TRUE;DB_CLOSE_DELAY=-1" />
<property name="user" value="sa" />
<property name="password" value="" />
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.atomikos.icatch.jta.hibernate4"/>
<property name="jtaTransactionManager" ref="transactionManager" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.transaction.jta.platform">com.atomikos.icatch.jta.hibernate4.AtomikosPlatform</prop>
<prop key="show_sql" >true</prop>
</props>
</property>
</bean>
</beans>
com.atomikos.icatch.jta.hibernate4.AtomikosPlatform
真的
更新
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.atomikos.icatch.jta.hibernate4"/>
<property name="hibernateProperties">
<props>
<prop key="dialect">org.hibernate.dialect.H2Dialect</prop>
<prop key="current_session_context_class">jta</prop>
<prop key="hibernate.transaction.factory_class">org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory</prop>
<prop key="hibernate.transaction.jta.platform">com.atomikos.icatch.jta.hibernate4.AtomikosPlatform</prop>
<prop key="hbm2ddl.auto">create</prop>
<prop key="connection.release_mode">auto</prop>
<prop key="cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
<prop key="show_sql">true</prop>
</props>
</property>
</bean>
org.hibernate.dial.h2方言
jta
org.hibernate.engine.transaction.internal.jta.CMTTransactionFactory
com.atomikos.icatch.jta.hibernate4.AtomikosPlatform
创造
汽车
org.hibernate.cache.NoCacheProvider
真的
您检查过了吗?示例使用JPA或Hibernate 3的方法。示例(注册后:Examples-hibernate4,Examples-hibernate4-jndi,Examples-Hibernate-jndi-spring)使用JPA或Hibernate 3的方法(在atomikos.com上)。您尝试过Examples-hibernate4-jndi
?它不使用JPA。该示例中包含的所有测试用例都是通过的。忽略示例名称的JNDI
部分。这并不一定意味着您需要一个容器来运行该示例