BTW, here is how the same section of log file looks when app is successfully deployed on running TomEE:
2016-07-29 14:33:00,420 [http-nio-7080-exec-5] INFO JpaComponent.java 134 | Using EntityManagerFactory configured: org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory@5566ceee 2016-07-29 14:33:00,452 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 490 | Using JTA UserTransaction: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,452 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 501 | Using JTA TransactionManager: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,453 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 535 | Using JTA TransactionSynchronizationRegistry: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,453 [http-nio-7080-exec-5] INFO AppProducers.java 60 | jtaTransactionManager produced 2016-07-29 14:33:00,453 [http-nio-7080-exec-5] INFO JpaComponent.java 143 | Using TransactionManager found in registry with id [jtaTransactionManager] org.springframework.transaction.jta.JtaTransactionManager@5c44ab46 2016-07-29 14:33:00,688 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 490 | Using JTA UserTransaction: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,688 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 501 | Using JTA TransactionManager: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,689 [http-nio-7080-exec-5] INFO JtaTransactionManager.java 535 | Using JTA TransactionSynchronizationRegistry: org.apache.openejb.resource.GeronimoTransactionManagerFactory$DestroyableTransactionManager@609724e1 2016-07-29 14:33:00,689 [http-nio-7080-exec-5] INFO AppProducers.java 60 | jtaTransactionManager produced For some reason jtaTransactionManager producer called twice, but it works. -----Original Message----- From: Shultz, Dmitry [mailto:[email protected]] Sent: July-29-16 2:46 PM To: [email protected] Subject: RE: Camel JPA + JTA Transaction (TomEE) Romain, TransactionManager is never injected in my case (and yes, - I removed parameters from producer). I'm having some strange problems with UserTransaction as well. It works when I'm deploying the app on the already running TpomEE, but fails when TomEE is restarted with the app deployed. Here is the exception (it is injected in the AppProducers class): 14:33| INFO | ManagedManagementStrategy.java 191 | JMX is enabled 14:33| INFO | DefaultTypeConverter.java 56 | Loaded 185 type converters 14:33| INFO | DefaultRuntimeEndpointRegistry.java 203 | Runtime endpoint registry is in extended mode gathering usage statistics of all incoming and outgoing endpoints (cache limit: 1000) 14:33| INFO | JpaComponent.java 134 | Using EntityManagerFactory configured: org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory@56744adf WARNING - Injection data not found in JNDI context: jndiName='comp/env/com.company.mix.wosess.camel.AppProducers/userTransaction', target=com. company.mix.wosess.camel.AppProducers/userTransaction 14:33| INFO | DefaultCamelContext.java 3066 | Apache Camel 2.17.2 (CamelContext: event-storage-service) is shutting down 14:33| INFO | DefaultCamelContext.java 3151 | Apache Camel 2.17.2 (CamelContext: event-storage-service) uptime 0.245 seconds 14:33| INFO | DefaultCamelContext.java 3152 | Apache Camel 2.17.2 (CamelContext: event-storage-service) is shutdown in 0.005 seconds SEVERE - No JTA UserTransaction available - specify either 'userTransaction' or 'userTransactionName' or 'transactionManager' or 'transactionManagerName' java.lang.IllegalStateException: No JTA UserTransaction available - specify either 'userTransaction' or 'userTransactionName' or 'transactionManager' or 'transactionManagerName' at org.springframework.transaction.jta.JtaTransactionManager.checkUserTransactionAndTransactionManager(JtaTransactionManager.java:494) at org.springframework.transaction.jta.JtaTransactionManager.afterPropertiesSet(JtaTransactionManager.java:436) at com.kaltire.mix.wosess.camel.AppProducers.createTransactionManager(AppProducers.java:58) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.webbeans.inject.InjectableMethod.doInjection(InjectableMethod.java:155) at org.apache.webbeans.portable.ProducerMethodProducer.produce(ProducerMethodProducer.java:89) at org.apache.webbeans.portable.AbstractProducer.produce(AbstractProducer.java:172) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:122) at org.apache.webbeans.component.ProducerMethodBean.create(ProducerMethodBean.java:95) at org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:68) at org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:125) at org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:789) at org.apache.webbeans.container.InjectableBeanManager.getReference(InjectableBeanManager.java:165) at org.apache.camel.cdi.BeanManagerHelper.getReference(BeanManagerHelper.java:56) at org.apache.camel.cdi.CdiCamelRegistry.findByTypeWithName(CdiCamelRegistry.java:71) at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.findByTypeWithName(PropertyPlaceholderDelegateRegistry.java:70) at org.apache.camel.component.jpa.JpaComponent.doStart(JpaComponent.java:139) How to make it to support TomEE restart? Cheers, Dmitry -----Original Message----- From: Romain Manni-Bucau [mailto:[email protected]] Sent: July-29-16 1:35 PM To: [email protected] Subject: Re: Camel JPA + JTA Transaction (TomEE) Normally no, @Resource private TransactionManager transactionManager; or with a specified name if you prefer @Resource(name = "java:comp/TransactionManager") // or java:comp/env/comp/TransactionManager for some older tomee versions private TransactionManager transactionManager; work to get injected by TomEE the transaction manager. Did you remove the parameters from your producer? Just a new JtaTransactionManager() without any configuration should also work relying on defaults of spring. The unsatisfied exception you get is cause spring is scanned as a EE library and does a @Inject TransactionManager mgr;. Just add in conf.exclusions.list: default-list spring- and it should work Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber <http://www.tomitribe.com> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-07-29 20:17 GMT+02:00 dimas <[email protected]>: > Is there anything else i need to do besides just reference it as @Resource? > It's still 'null' > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/Camel-JPA-JTA-Transaction-TomEE-tp57 > 85642p5785653.html Sent from the Camel - Users mailing list archive at > Nabble.com. >
