`
入云涛
  • 浏览: 155801 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

OpenSessionInViewFilter 配置问题

    博客分类:
  • j2ee
阅读更多
关于OpenSessionInViewFilter有一篇详细文章,http://blog.csdn.net/westwindwing/archive/2007/01/23/1490802.aspx,正如文章中描述的一样,hibernate的session由spring来管理,每次在执行请求时,使用的是一个 session,可以使其延迟执行,缓冲数据,那么在高访问量和处理的时候,就无法快速的访问,这个时候需要将OpenSessionInViewFilter模式转换成"singleSession"="false",通过这个设置每次请求将创建一个session,用完后关闭。
下面是一个错误报告。

org.springframework.dao.InvalidDataAccessApiUsageException: 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.
	at org.springframework.orm.hibernate3.HibernateTemplate.checkWriteOperationAllowed(HibernateTemplate.java:1182)
	at org.springframework.orm.hibernate3.HibernateTemplate$12.doInHibernate(HibernateTemplate.java:692)
	at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
	at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
	at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:690)

由上面的错误可以看到,是由于配置执行用了readOnly,那么保存的时候就不能写操作。在applicationContext.xml中设置
<tx:method name="save*" propagation="REQUIRED"/>
			<tx:method name="add*" propagation="REQUIRED"/>
			<tx:method name="get*" read-only="true" propagation="REQUIRED" />
			<tx:method name="load*" read-only="true" propagation="REQUIRED" />
			<tx:method name="find*" read-only="true" propagation="REQUIRED" />

,保存是没有设置read-only="true",那么为什么不能写操作,这个确实比较迷茫,但是将"singleSession"="false",设成false后,就能执行写操作,这个还没有找到具体原因,暂且让其设置成false,待找到根源后,再做详细分析。
分享到:
评论

相关推荐

    关于OpenSessionInViewFilter的学习

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

    SSH2.0配置日记

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

    ssh基本配置过程,是struts2的

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

    SSH整合环境 配置

    - `OpenSessionInViewFilter` 是Spring提供的一个过滤器,用于解决数据访问层(DAO)在Web请求结束时无法关闭Session的问题,防止出现Session过早关闭导致的事务问题。`sessionFactoryBeanName`参数指定了...

    ssh配置总结

    为了避免字符集问题,还可以在`web.xml`中配置`CharacterEncodingFilter`过滤器,强制所有HTTP请求使用UTF-8编码: ```xml &lt;filter-name&gt;characterEncoding &lt;filter-class&gt;org.springframework.web.filter....

    S2SH的配置

    - **`IntrospectorCleanupListener`**:用于清理JavaBeans Introspector缓存,防止内存泄漏问题。 ### 2.2 Hibernate配置 为了实现事务的一致性,通常会在`web.xml`中配置一个过滤器,用以开启Session的生命周期与...

    SSH配置模板[参照].pdf

    - Hibernate的`OpenSessionInViewFilter`用于解决在多层调用中保持数据库连接的问题。它将Hibernate Session的生命周期扩展到整个HTTP请求,确保在页面渲染完成之前都能访问到数据库。`sessionFactoryBeanName`参数...

    spring框架中常用的配置

    Spring框架还提供了一系列的过滤器来处理Web应用中的请求,例如OpenSessionInViewFilter用于解决Hibernate懒加载问题。 - **OpenSessionInViewFilter**:此过滤器在请求处理开始时打开一个Hibernate会话,在请求...

    ssh+flex配置

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

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

    - **IntrospectorCleanupListener**:这是一个Spring提供的监听器,用于防止`java.beans.Introspector`类引发的内存泄漏问题。将其配置在`ContextLoaderListener`之前可以确保先清理再初始化Spring容器。 - **...

    spring+struts+hibernate的配置文档

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

    SSH配置模板[总结].pdf

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

    Java servlet过滤器配置详解

    其次,JSP页面配置也是处理编码问题的关键步骤。在每个JSP页面的顶部,通常会有如下声明: ```jsp ;charset=UTF-8" language="java" %&gt; ``` 这行代码告诉服务器此JSP页面的字符集为UTF-8,确保JSP编译后的HTML页面在...

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

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

    懒加载异常解决.docx

    通过配置OpenSessionInViewFilter,可以在很大程度上解决懒加载异常的问题,尤其是在Java Web应用中使用Hibernate等ORM框架时。当然,还需要根据实际项目的具体情况,灵活调整和优化配置,以达到最佳的性能和稳定性...

    SSH整合的配置文件详解

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

    Spring配置总结

    通过在web.xml中配置`OpenSessionInViewFilter`,可以实现持久化层的事务与视图渲染的无缝结合,提高应用性能。 ##### 2. **Struts-config.xml与Spring集成** 当Spring与Struts框架集成时,可以通过`...

    三大框架整合常见问题

    Spring 配置问题 Spring是SSH架构的核心,其配置是否正确直接影响到整个系统的运行稳定性。 **具体问题:** - 在Spring配置文件`struts.xml`中,需要正确地引用`applicationContext.xml`中的bean定义。 - 在...

Global site tag (gtag.js) - Google Analytics