【问题标题】:Setting up Spring JTA transaction in Jboss 7.1.1在 Jboss 7.1.1 中设置 Spring JTA 事务
【发布时间】:2014-06-25 14:27:11
【问题描述】:

您好,我正在尝试在 myEclipse 中为 Spring 设置 spring JTA。以下是我的配置文件:

applicationContent.xml 我添加了两个导入(注意它确实包括架构位置)

<import resource="infrastructure.xml"/>
<import resource="classpath:**/persistence.xml"/>

infrastrutre.xml(由于输入验证无法添加架构)

<bean
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

    <bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="jtaDataSource" ref="masterDataSource" />
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    </bean>

    <!-- <bean id="masterDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:/test_JTA"></property>
</bean> -->

<jee:jndi-lookup id="masterDataSource" jndi-name="java:/Test_JTA" />

<bean id="jpaVendorAdapter"
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<!--     <property name="databasePlatform" 
        value="org.hibernate.dialect.MySQL5InnoDBDialect" /> -->
    <property name="database" value="MYSQL" />
    <property name="showSql" value="true" />
    <property name="generateDdl" value="true" />
</bean>

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="mainPU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
   <class>com.abc.PaymentCard</class>
    <jar-file>mysql-connector-java-5.1.23-bin.jar</jar-file>
    <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
      <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"/>
        <property key="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</property>
  <property key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
    </properties>
  </persistence-unit>
</persistence>

我收到错误 JBAS010402:无法实例化驱动程序类“com.mysql.jdbc.Driver”:org.jboss.msc.service.DuplicateServiceException:服务jboss.jdbc-driver.JTA_Test_war 已注册

我看到了这个错误,但仍然没有得到任何满意的答案。请帮助

【问题讨论】:

    标签: spring jboss spring-data-jpa jta


    【解决方案1】:

    我不确定 JBoss,但对于 Glassfish,在 Classpath 中有你想要的 Jars 的 Ext 目录。因此,请尝试弄清楚如何将 mysql-connector-java*.jar 部署到您的域。

    【讨论】:

    • 感谢您的回复,这里和那里的一些调整后问题已得到解决。
    【解决方案2】:

    我知道它来晚了,但我相信我通过使用不同的工厂类修复了这个错误。

    <property name="hibernate.transaction.factory_class" value="org.hibernate.ejb.transaction.JoinableCMTTransactionFactory"/>
    

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多