java - Hibernate exception: No Hibernate Session bound to Thread -


i trying use hibernate when attempt open session following exception

org.springframework.web.util.nestedservletexception: request processing failed; nested  exception org.hibernate.hibernateexception: no hibernate session bound thread,         , configuration not allow creation of non-transactional 1 here     org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:656)     org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:560)     javax.servlet.http.httpservlet.service(httpservlet.java:641)     javax.servlet.http.httpservlet.service(httpservlet.java:722)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:368)     org.springframework.security.web.access.intercept.filtersecurityinterceptor.invoke(filtersecurityinterceptor.java:109)     org.springframework.security.web.access.intercept.filtersecurityinterceptor.dofilter(filtersecurityinterceptor.java:83)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.access.exceptiontranslationfilter.dofilter(exceptiontranslationfilter.java:97)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.session.sessionmanagementfilter.dofilter(sessionmanagementfilter.java:100)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.anonymousauthenticationfilter.dofilter(anonymousauthenticationfilter.java:78)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.servletapi.securitycontextholderawarerequestfilter.dofilter(securitycontextholderawarerequestfilter.java:54)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.savedrequest.requestcacheawarefilter.dofilter(requestcacheawarefilter.java:35)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.abstractauthenticationprocessingfilter.dofilter(abstractauthenticationprocessingfilter.java:187)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.logout.logoutfilter.dofilter(logoutfilter.java:105)     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)     org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88)     org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76)     com.opensymphony.sitemesh.webapp.sitemeshfilter.obtaincontent(sitemeshfilter.java:129)     com.opensymphony.sitemesh.webapp.sitemeshfilter.dofilter(sitemeshfilter.java:77)  root cause  org.hibernate.hibernateexception: no hibernate session bound thread, , configuration not allow creation of non-transactional 1 here     org.springframework.orm.hibernate3.springsessioncontext.currentsession(springsessioncontext.java:63)     org.hibernate.impl.sessionfactoryimpl.getcurrentsession(sessionfactoryimpl.java:622)     com.dataart.masternoy.dao.imp.userdaoimpl.existuserbyloginemail(userdaoimpl.java:35)     com.dataart.masternoy.service.imp.userserviceimpl.existuserbyloginmail(userserviceimpl.java:47)     com.dataart.masternoy.controller.firstpagecontroller.isvalid(firstpagecontroller.java:46)     com.dataart.masternoy.controller.firstpagecontroller.confirmregister(firstpagecontroller.java:79)     sun.reflect.nativemethodaccessorimpl.invoke0(native method)     sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)     sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)     java.lang.reflect.method.invoke(method.java:597)     org.springframework.web.bind.annotation.support.handlermethodinvoker.invokehandlermethod(handlermethodinvoker.java:176)     org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.invokehandlermethod(annotationmethodhandleradapter.java:426)     org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter.handle(annotationmethodhandleradapter.java:414)     org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:790)     org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:719)     org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:644)     org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:560)     javax.servlet.http.httpservlet.service(httpservlet.java:641)     javax.servlet.http.httpservlet.service(httpservlet.java:722)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:368)     org.springframework.security.web.access.intercept.filtersecurityinterceptor.invoke(filtersecurityinterceptor.java:109)     org.springframework.security.web.access.intercept.filtersecurityinterceptor.dofilter(filtersecurityinterceptor.java:83)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.access.exceptiontranslationfilter.dofilter(exceptiontranslationfilter.java:97)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.session.sessionmanagementfilter.dofilter(sessionmanagementfilter.java:100)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.anonymousauthenticationfilter.dofilter(anonymousauthenticationfilter.java:78)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.servletapi.securitycontextholderawarerequestfilter.dofilter(securitycontextholderawarerequestfilter.java:54)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.savedrequest.requestcacheawarefilter.dofilter(requestcacheawarefilter.java:35)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.abstractauthenticationprocessingfilter.dofilter(abstractauthenticationprocessingfilter.java:187)     org.springframework.security.web.filterchainproxy$virtualfilterchain.dofilter(filterchainproxy.java:380)     org.springframework.security.web.authentication.logout.logoutfilter.dofilter(logoutfilter.java:105)     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)     org.springframework.web.filter.characterencodingfilter.dofilterinternal(characterencodingfilter.java:88)     org.springframework.web.filter.onceperrequestfilter.dofilter(onceperrequestfilter.java:76)     com.opensymphony.sitemesh.webapp.sitemeshfilter.obtaincontent(sitemeshfilter.java:129)     com.opensymphony.sitemesh.webapp.sitemeshfilter.dofilter(sitemeshfilter.java:77) 

here config

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop"        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"             default-lazy-init="true">     <import resource="applicationcontext-services.xml" />     <import resource="applicationcontext-security.xml" />     <import resource="applicationcontext-email.xml" />     <import resource="applicationcontext-social.xml" />      <mvc:resources mapping="/resources/**" location="/resources/" />      <mvc:annotation-driven />     <context:component-scan base-package="com.company.name." />     <bean id="validator"       class="org.springframework.validation.beanvalidation.localvalidatorfactorybean" />      <bean id="viewresolver"           class="org.springframework.web.servlet.view.internalresourceviewresolver">       <property name="prefix" value="/pages/" />       <property name="suffix" value=".jsp" />       <property name="contenttype" value="text/html; charset=utf-8" />     </bean>      <bean id="messagesource"           class="org.springframework.context.support.resourcebundlemessagesource">       <property name="basename" value="messages" />       <property name="usecodeasdefaultmessage" value="true" />     </bean>      <bean id="jacksonmessageconverter"           class="org.springframework.http.converter.json.mappingjacksonhttpmessageconverter">     </bean>     <bean class="org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter">       <property name="messageconverters">       <list>         <ref bean="jacksonmessageconverter" />       </list>       </property>     </bean> </beans> 

dispatcher servlet

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:util="http://www.springframework.org/schema/util"     xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">      <mvc:annotation-driven />     <context:component-scan base-package="com.company.name" />     <mvc:resources mapping="/resources/**" location="/resources/" />     <!--       <mvc:view-controller path="/error/" view-name="errors/error" />       <mvc:view-controller path="/403/" view-name="errors/403" />       <mvc:view-controller path="/404/" view-name="errors/404" />       <mvc:view-controller path="/405/" view-name="errors/405" />      --> </beans> 

services

<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"     default-lazy-init="true">      <!-- <tx:annotation-driven transaction-manager="txmanager" /> -->     <tx:annotation-driven transaction-manager="transactionmanager" />     <bean id="transactionmanager" class="org.springframework.orm.hibernate3.hibernatetransactionmanager">       <property name="sessionfactory" ref="sessionfactory" />     </bean>      <bean id="configproperties" class="com.dataart.masternoy.utils.propertiesutil">       <property name="ignoreunresolvableplaceholders" value="true" />       <property name="locations">         <list>           <value>classpath:/config.properties</value>           <value>classpath:/jdbc.properties</value>         </list>       </property>     </bean>      <bean id="datasource" class="org.springframework.jdbc.datasource.drivermanagerdatasource">       <property name="driverclassname" value="com.mysql.jdbc.driver" />       <property name="url" value="jdbc:mysql://localhost:3306/shop" />       <property name="username" value="root" />       <property name="password" value="root" />     </bean>     <bean id="datasourcenew"         class="org.springframework.jdbc.datasource.drivermanagerdatasource">          <!-- <property name="driverclassname" value="org.hsqldb.jdbcdriver" /> -->         <property name="url" value="jdbc:mysql://localhost:3306/shop" />         <property name="username" value="root" />         <property name="password" value="root" />      </bean>     <bean class="org.springframework.jdbc.core.jdbctemplate" id="jdbctemplate">         <constructor-arg ref="datasource" />     </bean>      <bean id="txmanager"         class="org.springframework.jdbc.datasource.datasourcetransactionmanager">         <property name="datasource" ref="datasource" />     </bean>     <bean id="sessionfactory"           class="org.springframework.orm.hibernate3.annotation.annotationsessionfactorybean"           lazy-init="true">       <property name="datasource" ref="datasourcenew" />       <property name="packagestoscan" value="com.company.name" />       <property name="configlocation">         <value>classpath:hibernateconfig.xml</value>       </property>       <property name="configurationclass">         <value>org.hibernate.cfg.annotationconfiguration</value>       </property>       <property name="hibernateproperties">         <props>           <prop key="hibernate.connection.driver_class">org.hsqldb.jdbcdriver</prop>           <prop key="hibernate.show_sql">true</prop>           <prop key="hibernate.dialect">org.hibernate.dialect.mysqlinnodbdialect</prop>           <prop key="hibernate.connection.charset">utf-8</prop>           <prop key="current_session_context_class">thread</prop>           <prop key="format_sql">true</prop>         </props>       </property>     </bean> </beans> 

and serviceimpl

@service(value = "userservice") public class userserviceimpl implements userservice { @autowired @qualifier("userdao") userdao userdao;  @transactional public void addnewuser(user user) {     userdao.insertnewuser(user); } @transactional(readonly = true) public user getuserbylogin(string login) {     return userdao.selectuserbylogin(login); } @transactional(readonly = true) public list<user> getuserlist() {     return userdao.getuserlist(); } @transactional public void removeuserbylogin(string login) {     userdao.deleteuserbylogin(login); } @transactional(readonly = true) public boolean existuserbyloginmail(string login, string email) {     return userdao.existuserbyloginemail(login, email); } @transactional(readonly = true) public user getuserbyid(long id) {     return (user) userdao.selectuserbyid(id); } @transactional(readonly = true) public user getuserbyloginpass(string login, string pass) {     return userdao.getuserbyloginpass(login, pass); } } 

here's guess. in spring mvc application context used dispatcher servlet child of global context. if configure same beans in child context ones configured in global context, child context beans override global ones.

this did, means reference userservice instantiated child context, there no transaction manager, instead of getting reference userservice instantiated global context, transaction manager defined.

make sure scan mvc-related beans in mvc context, changing

<context:component-scan base-package="com.company.name" /> 

to

<context:component-scan base-package="com.company.name.web" /> 

or to

<context:component-scan base-package="com.company.name">     <context:include-filter type="annotation" expression="org.springframework.stereotype.controller"/> </context:component-scan> 

for example.


Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -