zoukankan      html  css  js  c++  java
  • Could not obtain transaction-synchronized Session for current thread 解决办法

    在整合springMVC与hibernate时,DAO层在getCurrentSession()时报错:

    HTTP Status 500 - Request processing failed; nested exception is org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread

    错误跟踪到sessionFactory.getCurrentSession();:

    protected Session getCurrentSession() {
      return this.sessionFactory.getCurrentSession();
    }

    网上找了几个解决方案(http://www.cnblogs.com/chyu/p/4817291.html)均未解决。

    而后在http://bbs.csdn.net/topics/390971954问答的3楼中看到:

    我也遇到过这个问题,我的是在Controller中的扫描路径错了,如果在Controller中也扫描了Service,这个时候的Service是没有事务特性的,所以会报错。

    解决方案就是不要在Controller中扫描事务相关的Service参考:http://blog.csdn.net/frankcheng5143/article/details/51308344

    遂开始检查扫描路径,首先web工程的web.xml引入spring-web.xml和springmvc-servlet.xml:

     spring-web.xml:

        <!-- 扫描路径,不扫描Controller -->
        <context:component-scan base-package="casic.bj">
            <context:exclude-filter type="annotation"
                expression="org.springframework.stereotype.Controller" />
        </context:component-scan>

    springmvc-servlet.xml:

        <!-- 设置使用注解的类所在的jar包 -->
        <context:component-scan base-package="casic.bj"></context:component-scan>
        <!-- 启用spring mvc 注解 -->
        <mvc:annotation-driven />
        <mvc:default-servlet-handler />
    
        <!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>

    其中springmvc-servlet.xml负责扫描controller,而扫描范围为整个项目路径,所以将service也一并扫描,导致出现以上错误。

    解决方法:

    修改:

    base-package="casic.bj"

    base-package="casic.bj.controller"

    即仅扫描相应controller包。

    问题解决。

  • 相关阅读:
    ES6之模块化
    ES6之展开运算符
    ES6之解构赋值
    ES6之对象的语法糖
    ES6之函数的语法糖
    ES6之模板字符串
    Exchanger详解
    DNS解析过程
    CyclicBarrier详解
    ConuntDownLatch详解
  • 原文地址:https://www.cnblogs.com/biobio/p/7754080.html
Copyright © 2011-2022 走看看