Atomikos,Hibernate 4/5,Spring 4,Jetty-无法找到当前的JTA事务

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

我尝试了许多不同的解决方案,但遇到了一个例外:

org.hibernate.HibernateException:无法定位当前JTA事务

我正在使用Atomikos、Hibernate4/5、Spring4和Jetty

如何配置Spring4+Hibernate4/5(非JPA

Atomikos文档只有一个JPA示例

如果有一个工作示例(非JPA、非JEE应用服务器),我将不胜感激

此示例更改了非JPA:

<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
部分。这并不一定意味着您需要一个容器来运行该示例