读书人

请大牛看看这个有关问题!No Hibernat

发布时间: 2012-11-04 10:42:42 作者: rapoo

请大牛看看这个问题!No Hibernate Session bound to thread, and configuration does not allow
小弟刚开始学习Spring 和 Hibernate框架,做了一个Spring和Hibernate的整合,用的是Spring 的MVC。目前老是这个错:No Hibernate Session bound to thread, and configuration does not allow,废话不多少,请看配置!

spring 配置文件如下:

<?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:jee="http://www.springframework.org/schema/jee"      xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:aop="http://www.springframework.org/schema/aop"     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"          default-lazy-init="false"><description>Spring公共配置 </description><!-- 定义受环境影响易变的变量 --><bean value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /><property name="ignoreResourceNotFound" value="true" /><property name="locations"><list><!-- 标准配置 --><value>classpath*:/application.properties</value></list></property></bean><!-- 数据源配置,使用应用内的DBCP数据库连接池 --><bean id="dataSource" destroy-method="close"><!-- Connection Info --><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /><!-- Connection Pooling Info --><property name="initialSize" value="5" /><property name="maxActive" value="100" /><property name="maxIdle" value="30" /><property name="maxWait" value="1000" /><property name="poolPreparedStatements" value="false" /><property name="defaultAutoCommit" value="false" /></bean><!-- Hibernate配置 --><bean id="sessionFactory" ref="dataSource" /><property name="namingStrategy"><bean /></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>  <prop key="hibernate.format_sql">${hibernate.format_sql}</prop><prop key="hibernate.jdbc.use_scrollable_resultset">false</prop><prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop><prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.ehcache_config_file}</prop></props></property><property name="packagesToScan" value="com.ligang.app.base.*" /></bean><!-- 事务管理器配置,单数据源事务 --><bean id="transactionManager" ref="sessionFactory" /></bean><!-- 使用annotation定义事务 --><tx:annotation-driven transaction-manager="transactionManager" proxy-target-/>      </beans>


Spring MVC的配置文件
<?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:jee="http://www.springframework.org/schema/jee"      xmlns:tx="http://www.springframework.org/schema/tx"     xmlns:context="http://www.springframework.org/schema/context"     xmlns:aop="http://www.springframework.org/schema/aop"     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd       http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"          default-lazy-init="false">    <!-- 使用annotation 自动注册bean,并保证@Required,@Autowired的属性被注入 --><context:component-scan base-package="com.ligang.app" />    <bean value="org.springframework.web.servlet.view.JstlView"/>     <!-- 支持JSTL -->           <property name="prefix" value="WEB-INF/pages/" />     <!-- 模板的路径 -->           <property name="suffix" value=".jsp" />                 <!-- 模板文件的后缀-->      </bean></beans>



spring Controller 代码:
@Controller@RequestMapping("/zsdt.do")public class ZsdtController {   @Autowired   private ZsdtService zsdtService;   private Page<TZsdt> page = new Page<TZsdt>(15);   @SuppressWarnings("unchecked")   @RequestMapping(params="method=list")   public String list(ModelMap map,HttpServletRequest request,HttpServletResponse response) {        String startIndex = request.getParameter("startIndex")==null?"1":request.getParameter("startIndex");        Integer goToPageNo = request.getParameter("goToPageNo")==null?0:Integer.parseInt(request.getParameter("goToPageNo"));        page.setFirst(Integer.parseInt(startIndex));        if(goToPageNo != 0){        page.setPageNo(goToPageNo);        }        page = zsdtService.queryZsdt(page);                request.setAttribute("page", page);                return "zsdt";     } }



Service层代码:
@Service@Transactionalpublic class ZsdtService {  @Autowiredprivate ZsdtDao zsdtDao;@Transactional(readOnly=true)public Page<TZsdt> queryZsdt(final Page<TZsdt> page){Page<TZsdt> newpage = zsdtDao.findPage(page);return newpage;}}



在执行DB层的获取连接的时候报错,我是这么获取数据库连接的:
/** * 取得当前Session. */public Session getSession() {return sessionFactory.getCurrentSession();}



具体错误信息:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one hereat org.springframework.orm.hibernate3.SpringSessionContext.currentSession(SpringSessionContext.java:63)at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)at com.ligang.modules.orm.hibernate.SimpleHibernateDao.getSession(SimpleHibernateDao.java:101)at com.ligang.modules.orm.hibernate.SimpleHibernateDao.createCriteria(SimpleHibernateDao.java:322)at com.ligang.modules.orm.hibernate.HibernateDao.findPage(HibernateDao.java:144)at com.ligang.app.base.service.ZsdtService.queryZsdt(ZsdtService.java:20)at com.ligang.app.base.controller.ZsdtController.list(ZsdtController.java:38)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:421)at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:136)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:326)at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:313)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Unknown Source)


请各位大牛看看,小弟不胜感激!!!!

读书人网 >编程

热点推荐