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