neni nahodou ta transakce nedefinovana s propagaci REQUIRES_NEW? Podle stack tracu a letmeho nahlednuti do zdrojaku tam dochazi k suspendnuti puvodni transakce a k otevreni nove, ve ktere selze bindind Hibernati session, ktera jiz lezi v holderu (threa local promenna).

Martin Chalupa napsal(a):
Dělá toto. UserBusiness je definován ve springu, připojuje se k databázi
přes hibernate a je označen @Transactional.

Martin

@Name("authenticator")
public class Authenticator { @In
        Identity identity;
        @In("#{userBusiness}")
        UserBusiness userBusiness;
        @Out(required = false, scope = ScopeType.SESSION)
        User logged;

        public boolean authenticate() {
                Long id = userBusiness.checkUsername (identity.getUsername
(),identity.getPassword ());
                if (id!=null && id>0){
                        this.logged = userBusiness.getById (id);
                        return true;
                }
                return false;
    }
}

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Roman Pichlik
Sent: Thursday, November 01, 2007 1:56 PM
To: Java
Subject: Re: Chyba při vytváření transakce.

nedela cz.bellman.umm.security.Authenticator neco s Hibernatem?

Martin Chalupa napsal(a):
Zdravím,

přidal jsem do aplikačního kontextu springu beanu, která implementuje ApplicationListener pro zachytávání událostí v kontextu. A od té doby mi aplikace vyhazuje chybu při pokusu o vytvoření transakce. Pokud beanu odeberu nebo zruším implementaci rozhraní vše funguje.

Používám Spring 2.0.6, Seam 2.0 RC3, Hibernate 3.2.4, Session factory je definovaná ve springu a seam managuje session.

Nenapadá vás nějaká příčina vzniku chyby?

Martin

Tady je stack trace:

Caused by: org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is java.lang.IllegalStateException: Already value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread [http-8080-1]

at
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(Hiber
nateTransactionManager.java:541)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.g
etTransaction(AbstractPlatformTransactionManager.java:350)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.createT
ransactionIfNecessary(TransactionAspectSupport.java:262)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Tr
ansactionInterceptor.java:101)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Reflect
iveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopPro
xy.java:204)
                at $Proxy73.checkUsername(Unknown Source)

at cz.bellman.umm.security.Authenticator.authenticate(Authenticator.java:37)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
..java:25
                at java.lang.reflect.Method.invoke(Method.java:597)

at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)

at
org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext
..java:31
at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext
..java:56
at
org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackIntercep
tor.java:31)
at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext
..java:68
at
org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.j
ava:46)
at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext
..java:68
at
org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInter
ceptor.java:42)
at
org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext
..java:68
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)

at
org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInt
erceptor.java:155)
at
org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java
:91)
at
cz.bellman.umm.security.Authenticator_$$_javassist_1.authenticate(Authentica
tor_$$_javassist_1.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
..java:25
                at java.lang.reflect.Method.invoke(Method.java:597)

at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)

                ... 95 more

Caused by: java.lang.IllegalStateException: Already value [EMAIL PROTECTED] for key [EMAIL PROTECTED] bound to thread [http-8080-1]

at
org.springframework.transaction.support.TransactionSynchronizationManager...
indResource(TransactionSynchronizationManager.java:163)
at
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(Hiber
nateTransactionManager.java:532)
                ... 124 more

--

Martin "chali" Chalupa





--
S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */

Odpovedet emailem