开发者

No JTA UserTransaction available - specify either 'userTransaction' or 'userTransactionName'

I have encountered a strange problem with spring tr开发者_运维知识库ansaction. My application uses Spring with EJBs. The EJBs also invoke Spring service classes annotated with @Transaction. I have used Spring JtaTransactionManager for transaction management. The application is packaged as an EAR file and is deployed on jboss5.0 and it works fine. But when I instruct jboss to use separate classloader for each EAR application, spring initialization gives error.

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'

Why initialization of Spring is not successful?

Thanks


try adding

@EnableTransactionManagement

on a configuration class where you hold your config bean

that worked for me when i had that issue , maybe you will need other platform specific implementation of the transaction manager , but this is a good place to start.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜