gpt4 book ai didi

java - Apache Tomcat 6 是否支持 JTA?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:26 25 4
gpt4 key购买 nike

我对在 Apache Tomcat 上的 Spring 框架内使用 JTA 有一些困惑,我希望有人能澄清,因为经过多次研究我似乎还没有找到正确的答案。

我正在使用 Spring Framework 开发一个在 Apache Tomcat 6 上运行的 Web 应用程序。

我在某处读到 Spring 确实支持 JTA,但它委托(delegate)给底层的 JavaEE 应用程序服务器。现在这就是我感到困惑的地方,因为我的 Tomcat 不是一个完整的 JavaEE 应用程序服务器——它只是一个 servlet 容器,而且我相信它不提供像完整的 JavaEE 应用程序服务器(Glassfish/Wildfly 等...)那样的 JTA 实现。

但是当我做类似下面的交易方面的事情时:

@Transactional
public class ServiceClassImpl implements ServiceInterface {
// code here that involves transactions e.g. calling DAO code
...
}

所以,我很困惑。希望有人赐教。

最佳答案

答案是:不。Tomcat 6.x (7&8) 不提供开箱即用的 JTA,因为它们没有事务管理器,事务管理器需要作为单独的组件来监视多个资源(例如数据源)。

提到的答案How to use JTA support in Tomcat 6 for Hibernate?已经给出了可以与 Tomcat 一起使用的附加 JTA 事务管理器的列表。

Spring 通过平台事务管理器 (TM) 支持声明式事务管理,并提供一些实现(例如数据源),使 @Transactional 在没有额外 TM 的情况下在单个资源上工作。

Understanding the Spring Framework transaction abstraction提供更多细节和Spring Boot可以轻松配置为在嵌入式 Tomcat 上运行 Atomikos 或 Bitronix 事务管理器。

关于java - Apache Tomcat 6 是否支持 JTA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634475/

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