camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shultz, Dmitry" <Dmitry_Shu...@kaltire.com>
Subject RE: Camel JPA + JTA Transaction (TomEE)
Date Fri, 29 Jul 2016 21:45:42 GMT
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:rmannibucau@gmail.com] 
Sent: July-29-16 1:35 PM
To: users@camel.apache.org
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 <Dmitry_Shultz@kaltire.com>:

> 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.
>
Mime
View raw message