`

struts2中OpenSessionInViewFilter无效解决方法

 
阅读更多

 

  struts2中OpenSessionInViewFilter无效,能够运行起来了,但是在jsp中迟缓加载数据时,发现session提前关闭了。 Hibernate抛出了异常no session。经过数次尝试,发现在web.xml中,必须要将spring的OpenSessionInViewFilter配置到Struts2的前方才会生效,原因尚不明确,也不去研究了,可能是个bug,其配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!--
		指定spring的配置文件,默认从web根目录寻找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找
	-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext-common.xml</param-value>
	</context-param>
	<!-- 对Spring容器进行实例化 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<!-- 使用spring解决hibernate因session关闭导致的延迟加载例外问题(必须配置到Struts2前面) -->
	<filter>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
		<init-param>
	   	<!-- 指定org.springframework.orm.hibernate3.LocalSessionFactoryBean在spring配置文件中的名称,默认值为sessionFactory.如果LocalSessionFactoryBean在spring中的名称不是sessionFactory,该参数一定要指定,否则会出现找不到sessionFactory的例外 -->
			<param-name>sessionFactoryBeanName</param-name>
			<param-value>sessionFactory</param-value>
		</init-param>
	</filter>
	<filter-mapping>
	        <filter-name>OpenSessionInViewFilter</filter-name>
	        <url-pattern>/*</url-pattern>
	</filter-mapping>
	<!-- 配置struts2 -->
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>

 

0
0
分享到:
评论
2 楼 free0007 2013-01-18  
下是按照配置文件中的前后位置来执行的,所以对session的开关控制要放在struts2之前
jeffreyQiu 写道
filters默认情况下是按照配置文件中的前后位置来执行的,所以对session的开关控制要放在struts2之前……

1 楼 jeffreyQiu 2013-01-14  
filters默认情况下是按照配置文件中的前后位置来执行的,所以对session的开关控制要放在struts2之前……

相关推荐

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    解决这个问题的方法有两种:一种是在 web.xml 中使用 Spring 提供的 OpenSessionInViewFilter,另一种是在 application.xml 中配置 OpenSessionInViewFilter。前者通用,后者只能用于 SpringMVC 结构中。 最后,...

    关于OpenSessionInViewFilter的学习

    OpenSessionInViewFilter是Spring框架中一个非常重要的组件,主要用于解决数据访问层(DAO)与视图层(View)之间的事务管理问题。在Web应用中,由于HTTP请求的无状态性,一次请求通常由多个Servlet过滤器、控制器和...

    struts2 spring hibernate整合要点、注意点

    本文将详细介绍如何在MyEclipse 7.0环境下,基于Java EE 1.4标准和Tomcat 6.0.18服务器,实现Struts2 2.0.14版本、Spring 2.5系列以及Hibernate 3.2系列的整合,并探讨具体的配置方法。 #### 二、配置文件详解 **1...

    OpenSessionInViewFilter

    OpenSessionInViewFilter个人学习总结

    ssh基本配置过程,是struts2的

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

    spring管理struts和hibernate

    - 通过Spring管理Struts中的Action,可以减少大量的配置工作,使得代码更加简洁。 - 利用Spring的AOP(面向切面编程)特性,可以方便地添加如事务管理、日志记录等功能到Struts Action中,而无需修改Action本身的...

    Struts2+Spring+Hibernate搭建全解

    - **引入依赖**:确保项目中包含了Struts2和Spring的相关jar包。 - **配置`struts.xml`**:这是Struts2的核心配置文件,需要定义Action、拦截器等元素。 - **Action类**:编写具体的Action类,并在`struts.xml`中...

    Struts+Hibernate+Spring的整合方法

    Struts、Hibernate和Spring是Java开发中常用的三个框架,它们分别负责表现层、持久层和业务层的管理。将这三个框架整合在一起可以实现一个高效、松耦合的企业级应用程序。 1. **Struts** 是一个MVC(Model-View-...

    struts2+hibernate+spring

    Struts2、Hibernate与Spring(通常简称为SSH)是Java Web开发中的三个流行框架。它们的结合可以极大地提高Web应用的开发效率和可维护性。具体来说: - **Struts2**:用于构建MVC架构的应用程序,它负责处理用户的...

    jar包(struts2.0.8+spring2.0+hibernate3.2)

    Struts2、Spring和Hibernate是Java开发中三个非常重要的框架,它们共同构成了经典的MVC(Model-View-Controller)架构的实现。这个压缩包“struts2.0.8+spring2.0+hibernate3.2”包含了这三个框架的特定版本,这将...

    struts2.1+spring3.0+hibernate3.3整合

    - **Struts2标签支持**:如果JSP页面中需要使用Struts2标签,则需要在`web.xml`中配置相应的过滤器。 综上所述,通过细致地配置Struts2、Spring与Hibernate之间的关系,可以有效地构建出高效稳定的Java Web应用系统...

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

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

    struts+spring+hibernate整合

    Spring4.0、Struts2.3.15、Hibernate4.2.4、jQuery1.9.1涉及到了诸多开发时的细节:ModelDriven、Preparable 拦截器、编写自定义的类型转换器、Struts2 处理 Ajax、OpenSessionInViewFilter、迫切左外连接、Spring ...

    struts-hibernate-sprint开发详解 乱码问题 连接池

    配置Struts2涉及创建一个Web项目,选择Struts2插件,并将所需的Struts2库添加到用户库中。这通常包括`struts2-core`、`struts2-convention-plugin`等核心组件。 在`web.xml`配置文件中,设置`context-param`来指定...

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    #### 四、整合中常见的问题及解决方法 **4.1 使用Myeclipse整合时在工程中加入各框架的顺序** 当使用MyEclipse进行整合开发时,建议按照以下顺序添加各个框架的库文件: 1. 添加Struts相关的库文件。 2. 添加...

    struts+spring+hibernate全面整合

    添加两个过滤器,一个是 `CharacterEncodingFilter` 用于设置请求和响应的编码,另一个是 `OpenSessionInViewFilter`,它在视图层保持 Hibernate Session,以解决数据持久化的问题。 3. **配置事务管理**: 在 ...

    struts_hibernate_spring集成

    在IT领域,特别是Java企业级应用开发中,Struts、Hibernate和Spring的集成是一个非常重要的主题,这三者的结合能够构建出稳定、高效且可扩展的Web应用程序。下面,我们将详细探讨如何在项目中实现Struts、Hibernate...

    SSH2.0配置日记

    在 Struts2 和 Spring 整合中,需要配置 Struts2 的配置文件,以便实现 Struts2 和 Spring 的整合。例如,可以使用 Spring 的 ContextLoaderListener 来实现 Struts2 和 Spring 的整合。 12. Hibernate 和 Spring ...

    搭建SSH框架步骤.pdf

    SSH框架,即Struts2、Spring和Hibernate的组合,是Java企业级开发中常用的三大框架。它们分别负责表现层、业务层和持久层的管理,提供了高效且灵活的开发环境。以下是对SSH框架搭建步骤的详细解析: 1. **初始化...

Global site tag (gtag.js) - Google Analytics