春季交易遇到了一个奇怪的问题.我的应用程序使用
Spring与EJB. EJB还调用用@Transaction注释的Spring服务类.我用Spring JtaTransactionManager进行事务管理.该应用程序被打包为EAR文件,并部署在jboss5.0上,它的工作正常.但是当我指示jboss为每个EAR应用程序使用单独的类加载器时,弹簧初始化会给出错误.
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; }