`
j2ee_chenwei
  • 浏览: 41468 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts2与openSessionInViewFilter过滤器的使用

阅读更多
org.hibernate.LazyInitializationException问题的解决2008-07-26 11:18今日在struts2+spring+hibernate的环境中写个demo.在页面输出${parent.name}的时候报org.hibernate.LazyInitializationException: could not initialize proxy - no Session错误.
查了网上的解决方案,大都说需要在<many-to-one>里设置lazy="false".可是我设了以后问题还是没有解决.
web.xml中也加了spring的OpenSessionInViewFilter,配置如下:
    <filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
最后发现是web.xml中配置的顺序问题造成的.这也可能是初学者常犯的一个错误.
在web.xml中我们应该将struts2的配置文件放在spring的配置后面.理解应该是让spring 在struts2的前面启动.才能管理到struts2.
我的web.xml详细配置如下:
        <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>

    <filter>
        <filter-name>hibernateFilter</filter-name>
        <filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>hibernateFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


    <filter>
        <filter-name>struts-cleanup</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.ActionContextCleanUp
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts-cleanup</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

分享到:
评论

相关推荐

    Java servlet过滤器配置详解

    这些过滤器各有用途,例如`TilesFilter`用于处理Struts2的Tiles视图定义,`OpenSessionInViewFilter`则在请求结束时确保数据库会话关闭,防止长时间打开的连接导致资源浪费。 在实际项目中,过滤器可以组合使用,...

    struts2 spring hibernate整合要点、注意点

    2. **Struts2配置Spring插件**:在`struts.xml`中配置Spring插件,并通过该插件实现Struts2与Spring之间的集成。 3. **Action类注入Service层**:在Struts2的Action类中,通过Spring的依赖注入机制注入Service层接口...

    过滤器对于session周期的控制

    当使用其他框架(如Struts2)时,需要注意`OpenSessionInViewFilter`与这些框架中过滤器的顺序。例如,在上面的例子中,`OpenSessionInViewFilter`被配置在`webwork`过滤器之前,这是为了确保在处理Struts2相关的...

    Struts2+Spring+Hibernate搭建全解

    - **修改`web.xml`**:配置Struts2所需的过滤器,例如`StrutsPrepareAndExecuteFilter`。 - **引入依赖**:确保项目中包含了Struts2和Spring的相关jar包。 - **配置`struts.xml`**:这是Struts2的核心配置文件,...

    ssh基本配置过程,是struts2的

    - 修改`web.xml`,添加Struts2的过滤器配置: ```xml &lt;filter-name&gt;struts2 &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter &lt;filter-name&gt;struts2 ...

    struts2+hibernate+spring

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

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

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

    spring管理struts和hibernate

    - 在`web.xml`中配置`OpenSessionInViewFilter`过滤器,自动管理事务。 #### 三、总结 通过以上步骤,我们不仅可以让Spring有效地管理Struts,实现更灵活的业务逻辑控制,还可以利用Spring的强大功能管理...

    ssh2开发步骤与项目实践宝典

    2. **Hibernate配置**:使用`OpenSessionInViewFilter`过滤器,该过滤器使得Hibernate在HTTP请求的生命周期内保持一个数据库会话,解决了懒加载(Lazy Loading)时可能出现的错误。`hibernateFilter`将这个过滤器...

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

    总的来说,这个配置说明涵盖了Struts2、Spring和Hibernate的集成过程,包括版本选择、库文件下载、关键类的替换以及Web应用的过滤器配置。开发者需要对这三个框架有深入理解,才能顺利完成这样的集成工作。同时,...

    SSH整合环境 配置

    - `StrutsPrepareAndExecuteFilter` 是Struts2的核心过滤器,它拦截所有请求并执行Struts2的处理流程。这个过滤器的配置使得Struts2能够解析和执行Action,处理用户请求。 4. **编码过滤器**: - `...

    S2SH的配置

    对于Struts2框架,`web.xml`中也配置了一个过滤器: ```xml &lt;filter-name&gt;struts &lt;filter-class&gt;org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter &lt;filter-name&gt;struts ...

    struts+spring+hibernate全面整合

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

    ssh+flex配置

    `OpenSessionInViewFilter`必须在`struts2`过滤器之前,以确保在处理请求时能正确地开启和关闭Hibernate Session。 10. **部署描述符** (`web.xml`):这是Java Web应用程序的核心配置文件,定义了过滤器、监听器、...

    Struts,Spring与hibernate集成

    这个过滤器确保Session在请求结束时才关闭,从而能正确处理延迟加载的对象。 集成这三个框架后,你可以享受到它们各自的优势:Struts处理用户交互,Spring管理业务逻辑和依赖,Hibernate处理持久化操作。这样的架构...

    SSH框架整合模版,非常详细实用

    4. **配置过滤器**:在`web.xml`中配置Struts2过滤器和`OpenSessionInViewFilter`,确保请求处理流程正确。 5. **测试**:编写JUnit测试用例来验证各组件的正确集成和工作流程。 在实际项目中,SSH框架的整合不仅...

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

    同时,配置`OpenSessionInViewFilter`(懒加载过滤器)以处理Hibernate的懒加载问题。接着,配置Struts2的FilterDispatcher,确保所有请求都被Struts2拦截和处理。 最后,`applicationContext.xml`是Spring的核心...

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

    - **字符集过滤器**:为了确保请求的编码正确,应在`web.xml`中配置字符集过滤器。 #### 二、Spring2.x与Hibernate3.x的整合 **2.1 Hibernate配置文件** Hibernate的配置文件(`hibernate.cfg.xml`)用于配置...

    spring+struts+hibernate的配置文档

    - **字符集过滤器**:通过 `&lt;filter&gt;` 和 `&lt;filter-mapping&gt;` 元素配置了一个字符集过滤器 `EnconfigFilter`,该过滤器用于设置请求的编码格式为 GBK,作用于所有的 URL 请求路径。 - **Hibernate 会话管理**:同样...

    Struts+Hibernate+Spring的整合方法

    8. **处理Hibernate延迟加载**:使用`OpenSessionInViewFilter`过滤器,确保Session在整个HTTP请求期间保持打开状态,解决懒加载问题。配置过滤器映射到所有.do请求。 9. **处理只读模式异常**:由于...

Global site tag (gtag.js) - Google Analytics