`

关于OpenSessionInViewFilter的配置

阅读更多
在web.xml文件中配置OpenSessionInViewFilter
<!---->
    
<filter>
        
<filter-name>hibernateFilter</filter-name>
        
<filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        
</filter-class>
    </filter>
在spring的事务配置中:
<!----><aop:config>
    
<aop:advisor id="managerTx" advice-ref="txAdvice"
        pointcut
="execution(* *..service.*Manager.*(..))" order="2" />
</aop:config>

<tx:advice id="txAdvice">
    
<tx:attributes>
        
<tx:method name="get*" read-only="true" />
        
<tx:method name="find*" read-only="true" />
        
<tx:method name="*" />
    
</tx:attributes>
</tx:advice>

这样的配置,当在容器中通过action调用service代码保存对象时,不能成功保存对象,
同时出现如下类似错误:
<!---->Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into
FlushMode.COMMIT
/AUTO or remove 'readOnly' marker from transaction definition.

这时修改filter的配置,增加如下代码:
<!---->    <filter>
        
<filter-name>hibernateFilter</filter-name>
        
<filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        
</filter-class>
        
<init-param>
            
<param-name>singleSession</param-name>
            
<param-value>false</param-value>
        
</init-param>
    
</filter>

这样就能成功保存对象了。



想飞的鱼 2007-04-11 20:33 发表评论
分享到:
评论
8 楼 wiflish 2011-06-28  
xutao5641745 写道
成功是成功了,不过这样跟没有配置有啥区别?楼主求解释啊。

没有配置就有OpenSessionInViewFilter的功能。
配置为false之后就失去了OpenSessionInViewFilter功能,等于没有用到OpenSessionInViewFilter
7 楼 xutao5641745 2011-05-30  
成功是成功了,不过这样跟没有配置有啥区别?楼主求解释啊。
6 楼 wiflish 2009-11-16  
zxt1987 写道
你那个方法事务配置错了

对。。是事物配置错的问题。
5 楼 wiflish 2009-11-16  
yangpeihai 写道
谢谢,可以解释一下吗?

呵呵。你去看下org.springframework.orm.hibernate3.support.OpenSessionInViewFilter这个类的源代码就知道怎么回事了。。  
4 楼 zxt1987 2009-11-14  
你那个方法事务配置错了
3 楼 itling 2009-05-17  
这样的配置,当在容器中通过action调用service代码保存对象时,不能成功保存对象,
同时出现如下类似错误:
Write operations are not allowed in read-only mode (FlushMode.NEVER/MANUAL): Turn your Session into
FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.

这时修改filter的配置,增加如下代码:
    <filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class>
        <init-param>
            <param-name>singleSession</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>

这样就能成功保存对象了。


添加singleSession=flase和上面的错误有联系吗?
这个问题是你事务没配置好
2 楼 wiflish 2009-04-01  
yangpeihai 写道

谢谢,可以解释一下吗?

这种配置是有问题的。。
       <init-param>
            <param-name>singleSession</param-name>
            <param-value>false</param-value>
        </init-param>

配置这个参数,就将OpenSessionInViewFilter的功能给去掉了。。。 
1 楼 yangpeihai 2009-03-18  
谢谢,可以解释一下吗?

相关推荐

    关于OpenSessionInViewFilter的学习

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

    SSH2.0配置日记

    涉及到了多个知识点,包括 Spring 配置、Hibernate 配置、Struts2 配置、ConnectionPool 配置、数据库配置、事务管理、OpenSessionInViewFilter 配置、web.xml 配置、依赖注入、Struts2 和 Spring 整合、Hibernate ...

    SSH详细配置文件(自己个人经验)

    - **Hibernate OpenSessionInViewFilter**:开启事务,确保在视图层操作时,Hibernate会话保持打开状态,通常需置于Struts2 Filter之前。 #### 三、常见问题与解决方案 - **包的导入冲突**:在构建SSH框架时,...

    ssh基本配置过程,是struts2的

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

    ssh配置总结

    ### SSH配置总结与部署步骤详解 #### 一、SSH框架简介 SSH框架是Java Web开发领域内非常流行的一种组合...以上就是关于SSH框架部署的基本步骤及注意事项的详细介绍。希望对正在学习或使用SSH框架的开发者有所帮助。

    S2SH的配置

    为了实现事务的一致性,通常会在`web.xml`中配置一个过滤器,用以开启Session的生命周期与HTTP请求的生命周期相匹配,即`OpenSessionInViewFilter`: ```xml &lt;filter-name&gt;hibernateOpenSessionInViewFilter ...

    SSH整合环境 配置

    以下是对SSH整合环境配置的详细说明: 1. **Spring配置**: - `ContextLoaderListener` 是一个监听器,用于在Web应用启动时加载Spring的IoC(Inversion of Control)容器。它会查找`contextConfigLocation`指定的...

    SSH配置模板[参照].pdf

    在SSH配置中,SSH指的是Struts2、Spring和Hibernate三个开源框架的组合,它们协同工作以构建企业级的Java Web应用程序。Struts2负责MVC(模型-视图-控制器)架构,Spring提供依赖注入和事务管理,而Hibernate则作为...

    spring框架中常用的配置

    ### Spring框架中常用的配置 #### 一、Spring框架配置概述 Spring框架作为一款非常流行的Java企业级应用开发框架,提供了大量的功能与配置选项来帮助开发者更高效地进行软件开发。在Spring框架中,配置是非常核心...

    ssh+flex配置

    SSH+Flex配置是一种常见的Java Web开发技术组合,用于构建高效、可扩展的Web应用程序。SSH分别代表Struts2(一个MVC框架)、Hibernate(一个对象关系映射框架)和Spring(一个全面的企业级应用框架)。Flex是Adobe...

    spring+struts+hibernate的配置文档

    - **Hibernate 会话管理**:同样通过 `&lt;filter&gt;` 和 `&lt;filter-mapping&gt;` 配置了 `OpenSessionInViewFilter`,用于管理 Hibernate 的会话生命周期。`singleSession` 参数被设置为 `true` 表示使用单一会话模式,即每...

    将_Shiro_作为应用的权限基础_五:SpringMVC+Apache_Shiro+JPA(hibernate)整合配置

    这是Spring针对Hibernate的非JPA实现使用的`OpenSessionInViewFilter`的JPA版本。 #### 2. applicationContext.xml配置详解 `applicationContext.xml`是Spring的基本配置文件之一,主要用于配置数据源、JPA实体...

    SSH整合的配置文件详解

    本文将深入解析SSH框架整合的配置文件,旨在为开发者提供全面的理解与指导。 ### SSH框架整合的核心:配置文件 #### 1. **web.xml** —— Servlet容器的配置文件 `web.xml`是Web应用程序的核心配置文件,用于配置...

    SSH配置模板[总结].pdf

    - `&lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;/filter-class&gt;`:OSIV模式允许在视图层(如JSP)处理请求时仍然保持数据库会话,以解决延迟绑定问题。`...

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

    在`web.xml`中,Struts2的配置通过`StrutsPrepareAndExecuteFilter`进行,而Spring与Hibernate的集成则通过`OpenSessionInViewFilter`实现。这些配置保证了请求到达时,Struts2能正确处理请求,同时Spring能够管理和...

    ssh配置文件

    在给定的文件信息中,虽然标题和描述指向了“SSH配置文件”,但【部分内容】却涉及到了Struts2、Spring、Hibernate这三个框架在Web项目中的集成与配置。因此,以下将围绕这部分内容进行深入解析,详细介绍如何在Web...

    S2SH xml配置文件

    - 此段配置将`OpenSessionInViewFilter`过滤器应用于所有的`.action`请求。 ##### 4. Struts2配置 ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2.dispatcher.FilterDispatcher ``` - `...

    Java servlet过滤器配置详解

    本篇将深入讲解Java Servlet过滤器的配置,包括`EncodingFilter`类的使用、jsp页面配置以及`web.xml`文件的配置。 首先,`EncodingFilter`是一个常见的过滤器,主要用于解决HTTP请求和响应中的编码问题。在处理中文...

    过滤器对于session周期的控制

    例如,在上面的例子中,`OpenSessionInViewFilter`被配置在`webwork`过滤器之前,这是为了确保在处理Struts2相关的请求之前,Session已经被打开。 #### 单个Session vs 多个Session 当`singleSession`参数设置为`...

Global site tag (gtag.js) - Google Analytics