Erreur: No Hibernate Session bound to thread
Je suis débutant avec Spring et tente d'utiliser ce dernier avec Hibernate3. (Je me base sur "12.2.5 Implementing DAO based on plain Hibernate 3 API" de la doc de spring)
Je suis bloqué à cette erreur:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
Quelquechose m'aurait-il échappé ?
merci :)
dao:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class DomaineDAOImpl implements DomaineDAO {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
(...)
public void saveDomaine(Domaine domaine) {
this.sessionFactory.getCurrentSession().saveOrUpdate(domaine);
}
} |
context.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" name="sessionFactory">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingDirectoryLocations">
<value>mappings</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${sessionFactory.hibernate.dialect}</prop>
<prop key="hibernate.connection.pool_size">1</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">${sessionFactory.hibernate.show_sql}</prop>
<prop key="hibernate.default_schema">${sessionFactory.hibernate.default_schema}</prop>
</props>
</property>
</bean>
<bean id="domaineDAO" class="dictionnaire.dao.hibernate.DomaineDAOImpl" name="domaineDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> |
Trace:
Code:
1 2 3 4 5 6 7
|
Exception in thread "main" org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
at org.springframework.orm.hibernate3.LocalSessionFactoryBean$TransactionAwareInvocationHandler.invoke(LocalSessionFactoryBean.java:1087)
at $Proxy0.getCurrentSession(Unknown Source)
at dictionnaire.dao.hibernate.DomaineDAOImpl.saveDomaine(DomaineDAOImpl.java:35)
at dictionnaire.ProjetManager.createAndStoreProjetDomaine(ProjetManager.java:53)
at dictionnaire.ProjetManager.main(ProjetManager.java:29) |
No Hibernate Session bound to thread
Bonjour,
Je vois que t'as eu la même erreur que moi mais je ne sais pas si il s'agit d'un même problème; en effet je suis débutante et je développe une application java/spring/hibernate.
Mon application est composée de deux interfaces : une page login (formulaire html) et une page d'accueil
Pour l'exécution de mon application, je rentre correctement mes identifiants (login+password) et lorsque je clique sur "valider" j'ai une page qui m'affiche l'erreur Etat HTTP 500 avec le message suivant :
Citation:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)
org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:700)
fr.cs.tma.dao.hibernate.UserDaoHibernate.findByUsername(UserDaoHibernate.java:35)
fr.cs.tma.service.UserService.loadUserByUsername(UserService.java:22)
org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:86)
org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:129)
org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:130)
org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:97)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:57)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
Pourrais-tu m'aider au moins à comprendre le sens de l'erreur ??
Please Help!
Merci