gpt4 book ai didi

spring - 如何访问 TomEE 的 JTA 事务管理器?

转载 作者:行者123 更新时间:2023-12-02 11:44:32 25 4
gpt4 key购买 nike

我有一个使用 Spring 声明式事务管理的应用程序。如何将其部署在 TomEE+ 容器中,以便应用程序使用 TomEE 的 JTA 事务管理器?

更具体地说,我如何从 Spring 的“application-context.xml”文件中引用内置事务管理器?

Spring 的事务管理配置似乎想要通过 bean 引用或 JNDI 查找来查找事务管理器;我花了一天时间研究这个并查看源代码;我发现了很多关于这个问题的讨论(下面的引用文献),但没有明确的操作方法。

我在应用程序的 META-INF/persistence.xml 中的内容是:

<persistence-unit name="myPersistenceUnit" transaction-type="JTA">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<jta-data-source>myDs-managed</jta-data-source>
<non-jta-data-source>myDs-unmanaged</non-jta-data-source>
<properties>
<property name="openjpa.jdbc.DBDictionary"
value="org.apache.openjpa.jdbc.sql.PostgresDictionary"/>
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema"/>
<property name="openjpa.Run
<property name="openjpa.Log" value="slf4j" />
</properties>
</persistence-unit>

并且,在应用程序 META-INF/spring/applicationContext.xml 文件中,我有以下内容:(我已经按照该主题的各种讨论中的建议尝试了 transactionManagerName 的各种值,因为它似乎是跨应用程序服务器的非标准值

<tx:annotation-driven mode="aspectj" transaction-manager="txManager" />
<bean class="org.springframework.transaction.jta.JtaTransactionManager"
id="txManager">
<property name="transactionManagerName"
value=" java:comp/TransactionManager"/>
</bean>

下面是一个声称适用于 JBoss 的示例:Spring JTA configuration - how to set TransactionManager?

这里有一个在 xml 配置文件中不起作用的险情:https://issues.apache.org/jira/browse/TOMEE-38

如果您掌握了initialContext,以下是如何在java代码中执行此操作:http://osdir.com/ml/users.openejb.apache.org/2012-11/msg00110.html

[编辑:Tomee 文档讨论了如何声明事务管理器,但它说要在 Tomee.xml 中执行此操作,Tomee.xml 属于服务器而不属于单个 webapp;我想为单个应用程序而不是整个服务器配置事务管理器:http://tomee.apache.org/containers-and-resources.html]

最佳答案

您是否尝试过 java:comp/env/TransactionManager 作为 transactionManagerName?,您是否还按照此处所述声明了 TransactionManager 和 DataSource:http://tomee.apache.org/containers-and-resources.html

关于spring - 如何访问 TomEE 的 JTA 事务管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com