我遇到了一个与spring事务有关的奇怪问题。我的应用程序使用Spring和EJB。 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的初始化不成功?
由于
答案 0 :(得分:0)
尝试添加
@EnableTransactionManagement
在您保存配置bean的配置类
上 当我遇到这个问题时,这对我有用 也许你需要其他特定于平台的事务管理器实现,但这是一个很好的起点。@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager txManager = new JpaTransactionManager();
txManager.setEntityManagerFactory(entityManagerFactory());
return txManager;
}