2010-09-28 42 views
12

我遇到了spring事務的一個奇怪問題。我的應用程序使用Spring和EJB。 EJB還調用使用@Transaction註解的Spring服務類。我使用Spring JtaTransactionManager進行交易管理。該應用程序打包爲EAR文件並部署在jboss5.0上,並且工作正常。但是當我指示jboss爲每個EAR應用程序使用單獨的類加載器時,彈簧初始化會給出錯誤。沒有可用的JTA UserTransaction - 指定'userTransaction'或'userTransactionName'

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

你在JBoss中改變了什麼設置? – skaffman 2010-09-28 13:14:12

+0

我修改了「deployers」目錄下的ear-deployer-jboss-beans.xml文件,將屬性「isolated」設置爲true。 – Chir 2010-09-30 06:45:33

回答

0

試穿,你把你的配置bean的配置類中添加

@EnableTransactionManagement 

爲我工作,當我有這樣的問題, 也許你會需要其他的平臺特定的交易經理的實施,但這是一個很好的開始。

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

在IBM WAS中部署sboot應用程序時遇到類似問題,將檢查此工作。 – Espresso 2018-02-16 23:54:52

相關問題