`

05 不用OpenSessionInViewFilter情况分析。。

 
阅读更多
在我所遇到的项目中都是用到OpenSessionInViewFilter这个过滤器的。
在搭建框架的时候我首先不注册这个过滤器。
对数据库进行简单CRUD的时候。没什么问题。
但是当我在Controller层调用两次service层的时候报了一个错:
org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
原因是在第一次调用service层后,session关闭了。然后DAO层未注入事务,而配置不允许无事务方法创建session。

好,那我就给DAO层加上@Transactional注解,声明DAO层所有方法需要事务管理。(其实一般只在service层加这个注解)。于是报以下错误:
Servlet.service() for servlet springMvcDispatcherServlet threw exception
org.hibernate.SessionException: Session is closed!


关于这个问题找到一个网址。不过关于最后一点,不太懂:
http://www.javalobby.org/java/forums/t20533.html
分享到:
评论

相关推荐

    关于OpenSessionInViewFilter的学习

    OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问...这个文档应该包含了OpenSessionInViewFilter的源码分析、配置示例以及常见问题的解答,对理解该过滤器的功能和工作原理非常有帮助。

    OpenSessionInViewFilter

    OpenSessionInViewFilter个人学习总结

    懒加载异常解决.docx

    #### 二、懒加载异常现象及原因分析 在使用懒加载技术时,可能会遇到“LazyInitializationException”这类异常。该异常通常发生在试图访问延迟加载的关联对象时,而此时Session已经关闭的情况。例如,在Hibernate中...

    SSH项目整合示例【OpenSessionInView】所用到的jar包

    SSH是Java Web开发中的一个流行框架组合,由Struts、Hibernate和Spring三个组件构成。这个框架集成提供了模型-视图-控制器(MVC)架构,数据持久化,以及依赖注入和事务管理等功能,大大简化了企业级应用的开发工作...

    过滤器对于session周期的控制

    通常情况下,一个Session应该在一个业务逻辑单元内开启并关闭,即遵循“短生命周期”原则。 #### Lazy Loading与Session生命周期 **Lazy Loading**是一种延迟加载策略,即在真正需要数据时才进行加载。这种策略...

    Spring hibernate opensessioninview

    2. **优化配置**:根据实际情况调整`singleSession`参数的值,以及`<url-pattern>`中的路径规则,确保只对需要的地方应用此过滤器。 3. **异常处理**:确保所有的异常都能够被正确捕获并处理,防止Session未被关闭的...

    Sping 事务管理.doc

    OpenSessionInViewFilter解决Web应用程序的问题

    Spring提供的CharacterEncoding和OpenSessionInView功能

    在处理Web应用时,Spring提供了一些关键特性,如`CharacterEncodingFilter`和`OpenSessionInViewFilter`,它们对于解决特定问题至关重要。 首先,让我们深入了解一下`CharacterEncodingFilter`。在Web应用中,字符...

    hibernate 中 fetch=FetchType.LAZY 懒加载失败处理方法

    为了解决这个问题,我们可以使用 Spring 提供的一个支持类OpenSessionInViewFilter,这个类可以在发起一个页面请求时打开 Hibernate 的 Session,并保持这个 Session 的生命周期,直到这个请求结束。这样可以确保 ...

    使用Spring引起的错误

    在使用Spring框架时,特别是在与Hibernate结合的情况下,可能会遇到“Write operations are not allowed in read-only mode (FlushMode.NEVER)”这样的异常。这个问题通常发生在使用Spring提供的Open Session In ...

    S2SH的配置

    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter ``` - **`OpenSessionInViewFilter`**:开启Hibernate的Session,在视图渲染完成后关闭Session,确保每个HTTP请求都在同一个...

    spring监听器

    ### Spring监听器与过滤器详解...- **Spring Web环境下的监听器和过滤器**:在Spring MVC环境中,除了上述提到的OpenSessionInViewFilter和CharacterEncodingFilter,还有多种其他类型的过滤器和监听器可以使用,例如`...

    java和数据库性能优化.doc

    JConsole和JProfiler等工具可用于监控内存使用情况,其中JProfile虽提供更详细的内存分析,但在高并发环境下使用需谨慎。 最后,**编码实践**同样影响性能。避免过度使用循环,尤其是嵌套循环,可以显著减少资源...

    Open_Session_In_View详解.doc

    然而,在没有使用Spring提供的`Open Session In View`的情况下,当懒加载设置为`true`时,如果在服务层(service or DAO)关闭了session,则需要在应用层内手动初始化所有关系集合(例如通过调用`company.getEmployees...

    spring框架中常用的配置

    通常情况下,开发者会在`web.xml`中配置此监听器以及应用程序上下文的位置。 - **配置示例**: ```xml <!-- Spring WebApplicationContext 初始化 --> <listener-class>org.springframework.web.context....

    ssh基本配置过程,是struts2的

    在`web.xml`中配置Spring监听器以初始化Spring容器,并添加`OpenSessionInViewFilter`以解决懒加载问题: ```xml <listener-class>org.springframework.web.context.ContextLoaderListener <filter-name>...

    struts2.3+spring3.1.2+hibernate4.1.6 配置说明

    然而,在时间紧迫的情况下,这一优化步骤未被执行。 总的来说,这个配置说明涵盖了Struts2、Spring和Hibernate的集成过程,包括版本选择、库文件下载、关键类的替换以及Web应用的过滤器配置。开发者需要对这三个...

    三大框架整合常见问题

    - **优化查询逻辑**:尽量避免在没有Session支持的情况下访问懒加载的属性。 #### 三、总结 SSH框架整合虽然可以带来诸多优势,但也伴随着一定的技术挑战。通过对上述常见问题的分析和解决,可以有效提升SSH项目的...

    Hibernate事务管理.

    事务管理确保了数据的一致性和完整性,防止在并发环境中出现数据不一致的情况。在没有Spring提供的Open Session In View(OSIV)模式下,事务处理和懒加载(lazy loading)可能会遇到挑战。 懒加载是一种优化策略,...

    基于全注解方式的SSH基础框架

    #### 关键组件分析 1. **Log4jConfigListener**: 负责加载日志配置文件,在应用启动时就配置好日志输出。 2. **ProxoolListener**: 监听器用于初始化Proxool数据库连接池,Proxool是一个高性能的数据库连接池实现,...

Global site tag (gtag.js) - Google Analytics