`
zhanjianhua
  • 浏览: 89472 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SSH+DWR异常org.hibernate.LazyInitializationException: could not initialize proxy

阅读更多

在SSH+DWR的环境中页面回掉DWR配置的方法,报异常org.hibernate.LazyInitializationException : could not initialize proxy - no Session。在网上查了很久,发现的解决方法都不是很好(大家可以自己搜搜)。

 

    终于在http://www.javaeye.com/topic/41318  发 现了下面的留言:“主要问题是open session in view的问题,用dwr请求返回的时候并没有session打开在表现层(因为打开session的filter并没有被调用,这是使用 xmlhttprequest导致的),所以要不你就用设置fetchmode来一次性把需要的UserPowerTeamModel拿出来,要不就把 lazy设置成false(但是不推荐这样做,因为改hbm配置文件会影响全局),还有就是写hsql,用left join fetch来得到UserPowerTeamModel ”

 

    发现这个人前面的分析应该是问题的本质,但是后面给出的办法并不可取。不就是dwr是通过xmlHttprequest访问没有打开 session吗,我们有没有办法让它访问的时候打开session呢。hibernate打开session是在web.xml里面配置的。我的 web.xml中相关部分的配置如下:

 

<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>true</param-value>
      </init-param>
     </filter>
     <filter-mapping>
      <filter-name>hibernateFilter</filter-name>
      <url-pattern>*.action</url-pattern>
     </filter-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <servlet-class>
       org.directwebremoting.spring.DwrSpringServlet
      </servlet-class>
      <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
      </init-param>
     </servlet>
     <servlet-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
     </servlet-mapping>
 

然后我添加了如下的一个filter-mapping就ok了。

        <filter-mapping>
            <filter-name>hibernateFilter</filter-name>
            <url-pattern>/dwr/*</url-pattern>
        </filter-mapping>
 

 

道理很简单,原来只有< url-pattern > *.action </ url-pattern >的url才会打开hibernate的session,现在我再加上< url-pattern > /dwr/* </ url-pattern >的url,这样dwr回掉的时候也会打开hibernate的session了,问题都解决了,呵呵。

 

希望对也碰到这个问题的朋友能有所帮助

 

转http://blog.csdn.net/dust_bug/article/details/3163987

分享到:
评论

相关推荐

    新版SSH+DWR配置(Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6).doc

    本文将详细介绍如何配置新版SSH+DWR框架,即Struts2.1.8、Spring3.0和Hibernate3.3.2与Direct Web Remoting (DWR) 2.0.6的集成。这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,...

    ext+dwr+....实现时时聊天

    【标题】:“ext+dwr+...实现时时聊天” 在IT领域,实时聊天功能是许多Web应用程序的核心组成部分,尤其是在社交、协作或客户服务应用中。本文将深入探讨如何利用JSP(JavaServer Pages)和Direct Web Remoting ...

    ssh+dwr整合

    ### SSH+DWR整合知识点详解 #### 一、SSH框架简介 SSH,即Spring、Struts和Hibernate三个开源框架的组合,是Java Web开发中的一种流行架构。Spring负责业务逻辑层,提供依赖注入和面向切面编程;Struts作为MVC框架...

    DWR+jquery2.x+easyUI1.3.x开发富客户端应用

    1. **SSH+jQuery+DWR+EasyUI 实战**:本文档通过一系列的实战案例展示了如何将 Struts2、Spring3、Hibernate4 与 DWR、jquery2.x 和 easyUI1.3.x 结合起来开发实际的应用。 2. **实战案例详解**: - SSH 架构集成...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    ext2+spring+hibernate+dwr.rar_dwr MenuManage.js_ext2 ja

    "ext2.0+Hibernate+dwr+spring列子" 文件可能是项目的源代码,包含了具体实现这些技术集成的示例代码。 现在,让我们深入探讨一下这些技术: 1. **Ext JS(ext2)**:这是一个用于构建富互联网应用程序(RIA)的...

    Spring+Struts+Hibernate+DWR集成教程.rar

    《Spring+Struts+Hibernate+DWR集成教程》是由知名技术博主saivicky精心制作的一份集成开发教程,旨在帮助开发者全面理解并掌握这四大框架的整合应用。本教程涵盖了Web开发中的MVC架构、持久层管理、远程调用等多个...

    SSH+Dwr+Ajax框架实现的OA办公自动化系统

    SSH+Dwr+Ajax框架是构建现代Web应用的一种高效组合,尤其在OA(Office Automation)办公自动化系统中,它们能够实现高效的数据交互和用户界面的动态更新。下面将详细讲解这三个关键技术及其在OA系统中的应用。 **...

    ssh+dwr(实现3级联)

    SSH (Struts2 + Spring + Hibernate) 和 DWR (Direct Web Remoting) 是两种常见的Java Web开发技术。在本文中,我们将深入探讨如何将这两种技术结合,实现一个三级联动的效果。 SSH是Java企业级开发中广泛应用的一...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.zip

    这个特定的版本,"OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.zip",是利用一系列成熟的Java技术栈构建的,包括Struts1.2、Hibernate3.0、Spring2和DWR。下面将对这些技术进行详细介绍。 1...

    ssh+dwr 整合案例

    SSH(Struts2 + Spring + Hibernate)和DWR(Direct Web Remoting)是两种常见的Java Web开发技术。SSH是企业级Java应用的三大基础框架,分别负责MVC模式中的表现层、业务逻辑层和持久层;而DWR则是一种允许...

    DWR2.jar + DWR.xml + DWR2.0.dtd + Web.xml

    Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,从而实现了富互联网应用(RIA)的功能。DWR2.0是DWR的一个版本,...

    SSH+DWR整合,有图片,有实例,有说明,非常详细

    【SSH+DWR 整合详解】 SSH (Struts + Spring + Hibernate) 是一个流行的Java Web开发框架,它集成了MVC(Model-View-Controller)模式、依赖注入和持久层管理,为开发者提供了强大的后端支持。DWR (Direct Web ...

    JAVA 开发OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.zip

    这是一个基于Java技术栈的OA(Office Automation)办公自动化管理系统项目,使用了经典的SSH(Struts、Spring、Hibernate)框架,并结合Direct Web Remoting (DWR) 技术。以下是这个项目涉及的关键知识点详解: 1. ...

    ssh+dwr 3级联

    SSH(Secure Shell)和DWR(Direct Web Remoting)是两种不同的技术,它们在Web开发中各有其用途。SSH主要用于提供安全的网络服务,如远程登录、文件传输等,而DWR则是一种JavaScript到Java的远程调用技术,使得前端...

    SSH+DWR综合实例

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。Struts2提供了MVC(Model-View-Controller)架构,Spring提供了依赖注入和事务管理,Hibernate则...

    ssh+dwr分页。。

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。DWR(Direct Web Remoting)则是一个JavaScript库,它允许在浏览器和服务器之间进行实时的双向通信,...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(分卷压缩part02)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    一个SSH+DWR的小示例

    SSH+DWR是一个常见的Web开发技术组合,用于构建动态、交互性强的Web应用程序。SSH代表Spring、Struts和Hibernate三个开源框架,它们分别是应用于服务层、表现层和数据持久层的解决方案。DWR(Direct Web Remoting)...

    ssh2+dwr开发的一个小例子(里边包含了所有的配置文件说明)

    SSH2 (Struts2 + Spring + Hibernate) 和 DWR (Direct Web Remoting) 是两种常见的Java Web开发技术。在这个小例子中,它们被结合起来用于构建一个医药管理系统。下面将详细介绍这些技术及其在项目中的应用。 **SSH...

Global site tag (gtag.js) - Google Analytics