Did you try defining your bean as a global alternative? See last section of
http://deltaspike.apache.org/jpa.html.

Regards,
Harald


2014-05-01 11:15 GMT+02:00 Michael Li <michael...@gmail.com>:

> I did debug through the invocation flow. It invoked
> ResourceLocalTransactionStrategy's "getTransaction" method, not the
> overridden in BeanManagedUserTransactionStrategy. I haven't figured out why
> "Alternatives" in beans.xml didn't take effect. The current code structure
> is an ear based gradle multi-project. I'll try it in a simple project
> tomorrow. Thanks for the reply.
>
> Michael.
>
>
> On Thu, May 1, 2014 at 12:34 AM, Mark Struberg <strub...@yahoo.de> wrote:
>
> > Hi Michael!
> >
> > BeanManagedUserTransactionStrategy extends
> > ResourceLocalTransactionStrategy.
> >
> > I suggest you create a breakpoint and debug through what this.class() you
> > get.
> >
> > LieGrue,
> > strub
> >
> >
> > On Thursday, 1 May 2014, 0:53, Michael Li <michael...@gmail.com> wrote:
> >
> > I have configured my beans.xml to use BeanManagedUserTransactionStrategy
> > >(beans.xml content shown below). However, the
> > >"ResourceLocalTransactionStrategy" is still used from error message. Any
> > >clue? By the way, I am using JBoss 7.2 and Jta data source.
> > >
> > >*** beans.xml ***
> > >
> > ><?xml version="1.0" encoding="UTF-8"?>
> > ><beans xmlns="http://java.sun.com/xml/ns/javaee";
> > >       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > >       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
> > >http://java.sun.com/xml/ns/javaee/beans_1_0.xsd";>
> > >    <interceptors>
> > >
> >
> >
> ><class>org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor</class>
> > >    </interceptors>
> > >    <alternatives>
> >
> >
> ><class>org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy</class>
> > >    </alternatives>
> > ></beans>
> > >
> > >*** Exception ***
> > >
> > >Caused by: java.lang.IllegalStateException: A JTA EntityManager cannot
> use
> > >getTransaction()
> > >at
> >
> >
> >org.hibernate.ejb.AbstractEntityManagerImpl.getTransaction(AbstractEntityManagerImpl.java:1019)
> > >[hibernate-entitymanager-4.2.0.Final.jar:4.2.0.Final]
> > >at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >[rt.jar:1.7.0_51]
> > >at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> > >[rt.jar:1.7.0_51]
> > >at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > >[rt.jar:1.7.0_51]
> > >at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.7.0_51]
> > >at
> >
> >
> >org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:45)
> > >[weld-core-1.1.10.Final.jar:2012-10-12 10:00]
> > >at
> >
> >
> >org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:105)
> > >[weld-core-1.1.10.Final.jar:2012-10-12 10:00]
> > >at
> >
> >
> >org.jboss.weld.proxies.EntityManager$-676163098$Proxy$_$$_WeldClientProxy.getTransaction(EntityManager$-676163098$Proxy$_$$_WeldClientProxy.java)
> > >at
> >
> >
> >org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.getTransaction(ResourceLocalTransactionStrategy.java:308)
> > >[deltaspike-jpa-module-impl-0.6.jar:0.6]
> > >at
> >
> >
> >org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.rollbackAllTransactions(ResourceLocalTransactionStrategy.java:274)
> > >[deltaspike-jpa-module-impl-0.6.jar:0.6]
> > >at
> >
> >
> >org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:153)
> > >[deltaspike-jpa-module-impl-0.6.jar:0.6]
> > >at
> >
> >
> >org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.executeInTransaction(TransactionalInterceptor.java:57)
> > >[deltaspike-jpa-module-impl-0.6.jar:0.6]
> > >
> > >
> > >--
> > >Michael Li
> > >
> > >
> > >
> >
>
>
>
> --
> Michael Li
>

Reply via email to