J'utilise Struts + Hibernate + Spring pour le développement de mon projet. Et voici mon fichier XML Spring Context. Lorsque j'ai appelé "sessionFactory.getCurrentSession()" au début de la méthode userDao.getXXXX, l'exception dont le message de détail est "Aucune session Hibernate liée au thread, et la configuration n'autorise la création d'une session non-transactionnelle ici" a été lancée.Aucune session Hibernate liée au thread
<!-- Hibernate Configuration -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- Spring Transaction Manager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- Spring Transaction Descriptions -->
<bean id="transactionAttributeSource"
class="org.springframework.transaction.interceptor.MethodMapTransactionAttributeSource">
<property name="methodMap">
<map>
<entry key="com.miaozhen.monitor.service.LoginServiceImpl.*">
<value>PROPAGATION_REQUIRED</value>
</entry>
</map>
</property>
</bean>
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributeSource">
<ref bean="transactionAttributeSource"/>
</property>
</bean>
<bean id="transactionAdvisor"
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<constructor-arg>
<ref bean="transactionInterceptor"/>
</constructor-arg>
</bean>
<bean id="autoproxy"
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
</bean>
<!-- DAO -->
<bean id="userDao"
class="com.miaozhen.dbservice.hibernate.dao.AUserDAO">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<!-- Service Layer -->
<bean id="loginService"
class="com.miaozhen.monitor.service.LoginServiceImpl">
<property name="userDao">
<ref bean="userDao"/>
</property>
</bean>
<!-- Struts Actions for DelegatingActionProxy -->
<bean name="/login"
class="com.miaozhen.monitor.struts.action.LoginAction">
<property name="loginService">
<ref bean="loginService"/>
</property>
</bean>
Merci pour votre excellente réponse.Je suis sûr que le service de connexion est un objet de classe de proxy. – lululau