Všechny jsou REQUIRED

pro upřesnění, konfigurace vypadá takto.

springContext.xml
<bean id="baseSessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactor
yBean">
...
</bean>
<bean id="sessionFactory"
class="org.jboss.seam.ioc.spring.SeamManagedSessionFactoryBean">
        <property name="sessionName" value="hibernateSession"/>
        <property name="baseSessionFactory" ref="baseSessionFactory"/>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>

components.xml
<persistence:managed-hibernate-session name="hibernateSession"
auto-create="true" session-factory="#{baseSessionFactory}"/>
<spring:spring-transaction
platform-transaction-manager="#{transactionManager}"/>

Martin


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

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