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;
}
精彩评论