gpt4 book ai didi

java - 没有可用的 JTA UserTransaction - 指定 'userTransaction' 或 'userTransactionName'

转载 作者:IT老高 更新时间:2023-10-28 13:52:16 31 4
gpt4 key购买 nike

我在spring事务中遇到了一个奇怪的问题。我的应用程序使用带有 EJB 的 Spring。 EJB 还调用带有 @Transaction 注释的 Spring 服务类。我使用 Spring JtaTransactionManager 进行事务管理。该应用程序被打包为 EAR 文件并部署在 jboss5.0 上,并且运行良好。但是当我指示 jboss 为每个 EAR 应用程序使用单独的类加载器时,spring 初始化会出错。

org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'transactionManager' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.IllegalStateException: No JTA UserTransaction
available - specify either 'userTransaction' or 'userTransactionName' or
'transactionManager' or 'transactionManagerName'

为什么Spring初始化不成功?

谢谢

最佳答案

尝试添加

@EnableTransactionManagement

在您保存配置 bean 的配置类上

当我遇到这个问题时,这对我有用,也许您将需要事务管理器的其他平台特定实现,但这是一个很好的起点。

@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory());
return txManager;
}

关于java - 没有可用的 JTA UserTransaction - 指定 'userTransaction' 或 'userTransactionName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3811246/

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