【发布时间】:2014-02-07 07:31:50
【问题描述】:
我在 Tomcat7 中使用 spring3 和 Hibernate4。
我必须使用 JTATransactionManager 并且我有以下配置。
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransactionName" value="java:comp/UserTransaction"></property>
</bean>
在上面的配置中,java:comp/UserTransaction 定义在哪里?
谢谢!
【问题讨论】:
-
你能澄清一下你想要什么吗?你想要一个 EJB 规范,或者答案是
in the JNDI,还是别的什么? -
我想知道什么是 java:comp/UserTransaction 以及它在哪里配置。谢谢!
-
Tomcat 没有 JTA 事务管理器。如果您需要 JTA 支持,您将需要一个更复杂的 Java EE 容器,例如 JBoss、Glassfish 等。或者你必须像 Bitronix 一样自己集成一个 JTA 事务管理器。
-
尼采特,感谢您的回复。我有两个应用程序。 App1 部署在 tomcat 中,App2 部署在 JBoss 中。从 App1 连接到 App2 并执行一些数据库操作。 App1 也在没有 App2 的情况下对不同的数据库进行一些 db 操作。有时在 App1 中的单个方法中,我需要在单个 tx 中同时调用 App2 和 App1 自己的数据库操作。现在我如何在这里使用 JTATransactionManager?
-
简短回答:你不能。即使有两个 JBoss 实例,这也不是一项简单的任务,您需要确保两个 JBoss 实例共享同一个分布式事务管理器。我什至不会尝试使用 Tomcat。
标签: java spring hibernate tomcat jta