Java JPA回滚不在Tomcat中工作,但在JBOSS中工作

Java JPA回滚不在Tomcat中工作,但在JBOSS中工作,java,spring,hibernate,tomcat,jpa,Java,Spring,Hibernate,Tomcat,Jpa,我创建了一个Spring(4.0.2)+JPA/hibernate(4.3.4)项目。我正在尝试测试它的提交和回滚。在我的服务层中,在测试回滚时,我试图创建一个事务,其中保存第一个对象,然后抛出错误,保存第二个对象,….在jboss中,它的工作与预期一样,即使第一个对象不保存在DB中,但在tomcat中,它保存第一个对象,即使在服务方法中抛出错误…我的示例代码如下 <context:component-scan base-package="com.pkg.*" /> <mvc

我创建了一个Spring(4.0.2)+JPA/hibernate(4.3.4)项目。我正在尝试测试它的提交和回滚。在我的服务层中,在测试回滚时,我试图创建一个事务,其中保存第一个对象,然后抛出错误,保存第二个对象,….在jboss中,它的工作与预期一样,即使第一个对象不保存在DB中,但在tomcat中,它保存第一个对象,即使在服务方法中抛出错误…我的示例代码如下

<context:component-scan base-package="com.pkg.*" />
 <mvc:annotation-driven />
 <jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/jbpmDS" />
 <!-- <jee:jndi-lookup id="dataSource" jndi-name="jdbc/jBPMDS" /> -->

 <bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="mainPU"/>
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.format_sql">true</prop>
        </props>
     </property>
</bean>

<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <!-- <property name="database" value="ORACLE" /> -->
    <property name="showSql" value="true" />
    <property name="generateDdl" value="true" />
     <property name="databasePlatform" value="org.hibernate.dialect.H2Dialect" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
<property name="entityManagerFactory" ref="emf" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
CommonDao

@Transactional(propagation = Propagation.SUPPORTS)
    public  boolean insert(Object o){
        em.persist(o);

     }
你知道为什么这在tomcat中不起作用吗?
我需要为tomcat使用JTA吗?

我发现一篇博客文章描述了您的问题。也许这有帮助:对我来说不起作用:(thnx无论如何..我是否缺少任何配置….至于jboss,它工作得非常好…但在tomcattried上,atomikos jta也不起作用,但仍然没有回滚保存的第一个值:(
@Transactional(propagation = Propagation.SUPPORTS)
    public  boolean insert(Object o){
        em.persist(o);

     }