Sto tentando di configurare XA/transazioni distribuite per un'applicazione di attività Spring/Spring Cloud configurata con avvio a molla.SimpleTaskConfiguration di Spring Cloud Task e SimpleBatchConfiguration del batch di primavera che impedisce la configurazione automatica di avvio a molla delle transazioni XA
ho aggiunto la seguente dipendenza sperando di contare su configurazione automatica di avvio di primavera:
compile("org.springframework.boot:spring-boot-starter-jta-atomikos")
Tuttavia le seguenti due classi causano due gestori di transazioni da configurare:
org.springframework.cloud.task.configuration.SimpleTaskConfiguration
org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration
Vedi seguente messaggio:
2016-07-18 21:46:19.952 INFO 18995 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'transactionManager' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration; factoryMethodName=transactionManager; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/batch/core/configuration/annotation/SimpleBatchConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.cloud.task.configuration.SimpleTaskConfiguration; factoryMethodName=transactionManager; initMethodName=null; destroyMethodName=(inferred); defined in org.springframework.cloud.task.configuration.SimpleTaskConfiguration]
e poi perché un PlatformTransactionManager
chiamato transactionManager
è configurato, il mio atomikos configurazione automatica non viene prelevato:
AtomikosJtaConfiguration did not match
- @ConditionalOnClass classes found: org.springframework.transaction.jta.JtaTransactionManager,com.atomikos.icatch.jta.UserTransactionManager (OnClassCondition)
- @ConditionalOnMissingBean (types: org.springframework.transaction.PlatformTransactionManager; SearchStrategy: all) found the following [transactionManager] (OnBeanCondition)
Qualcuno può per favore mi aiuti prevenire questo indebitamente forzare i fagioli transactionManager
causati dalle due classi sopra?
Potete fornire un esempio eseguibile (build.gradle ed una classe di applicazione) che riproduce il tuo problema? Perché, come con la tua domanda precedente, senza di essa tutto ciò che possiamo fare è gettare le tue ipotesi e supposizioni su di te e alla fine non fare nulla. –
Sto provando a mettere insieme un'app campione che riproduca questo. Sopportami. – balteo
Cool, grazie, che dovrebbe facilitare la risoluzione dei problemi –