请大牛看看这个有关问题!No Hibernate Session bound to thread, and configuration does not all

请大牛看看这个问题!No Hibernate Session bound to thread, and configuration does not allow小弟刚开始

请大牛看看这个问题!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)


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