我有一個春天啓動的應用程序作爲一個Spring JMS監聽器。我爲Oracle配置了多個數據源管理器,另一個配置了DB2。禁用事務管理可以在Spring的JMS的監聽
無論何時我開始應用程序,jms listener容器正在尋找一個事務管理器bean並在發現兩個bean時給出下面的錯誤。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.jms.JmsAnnotationDrivenConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.springframework.transaction.PlatformTransactionManager org.springframework.boot.autoconfigure.jms.JmsAnnotationDrivenConfiguration.transactionManager; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined: expected single matching bean but found 2: db2TransactionManager,oracleTransactionManager
我不想維護JMS事務。我怎麼能實現它,或者我們如何禁用jms事務功能?下面
是我對我的主彈簧引導類添加註釋。還我使用春數據倉庫
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
DataSourceTransactionManagerAutoConfiguration.class})
@ComponentScan(basePackages = "com.deere.oracledataupdate.*")
//@EnableJpaRepositories(basePackages ="com.deere.oracledataupdate.dao.springdata")
@EntityScan(basePackages = "com.deere.oracledataupdate.*")
@PropertySource({ "classpath:application-${IafConfigSuffix}.properties" })
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
您使用哪種彈簧啓動版本。 –
我正在使用1.2.3.RELEASE的春季啓動 –
更新到最新的1.2.6 ...早期版本的JMS自動配置依賴於PlatformTransactionManager新版本特定的JtaTransactionManager(通常)意識到在那裏進行交易。 –