在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与Direct Web Remoting (DWR) 2.0.6的集成。这个配置示例是基于目前最新的技术栈,旨在提供一个高效、稳定的开发环境。 首先,...
【标题】:“ext+dwr+...实现时时聊天” 在IT领域,实时聊天功能是许多Web应用程序的核心组成部分,尤其是在社交、协作或客户服务应用中。本文将深入探讨如何利用JSP(JavaServer Pages)和Direct Web Remoting ...
### SSH+DWR整合知识点详解 #### 一、SSH框架简介 SSH,即Spring、Struts和Hibernate三个开源框架的组合,是Java Web开发中的一种流行架构。Spring负责业务逻辑层,提供依赖注入和面向切面编程;Struts作为MVC框架...
1. **SSH+jQuery+DWR+EasyUI 实战**:本文档通过一系列的实战案例展示了如何将 Struts2、Spring3、Hibernate4 与 DWR、jquery2.x 和 easyUI1.3.x 结合起来开发实际的应用。 2. **实战案例详解**: - SSH 架构集成...
《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...
"ext2.0+Hibernate+dwr+spring列子" 文件可能是项目的源代码,包含了具体实现这些技术集成的示例代码。 现在,让我们深入探讨一下这些技术: 1. **Ext JS(ext2)**:这是一个用于构建富互联网应用程序(RIA)的...
《Spring+Struts+Hibernate+DWR集成教程》是由知名技术博主saivicky精心制作的一份集成开发教程,旨在帮助开发者全面理解并掌握这四大框架的整合应用。本教程涵盖了Web开发中的MVC架构、持久层管理、远程调用等多个...
SSH+Dwr+Ajax框架是构建现代Web应用的一种高效组合,尤其在OA(Office Automation)办公自动化系统中,它们能够实现高效的数据交互和用户界面的动态更新。下面将详细讲解这三个关键技术及其在OA系统中的应用。 **...
SSH (Struts2 + Spring + Hibernate) 和 DWR (Direct Web Remoting) 是两种常见的Java Web开发技术。在本文中,我们将深入探讨如何将这两种技术结合,实现一个三级联动的效果。 SSH是Java企业级开发中广泛应用的一...
这个特定的版本,"OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)130224.zip",是利用一系列成熟的Java技术栈构建的,包括Struts1.2、Hibernate3.0、Spring2和DWR。下面将对这些技术进行详细介绍。 1...
SSH(Struts2 + Spring + Hibernate)和DWR(Direct Web Remoting)是两种常见的Java Web开发技术。SSH是企业级Java应用的三大基础框架,分别负责MVC模式中的表现层、业务逻辑层和持久层;而DWR则是一种允许...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、双向通信,使得JavaScript可以直接调用Java方法,从而实现了富互联网应用(RIA)的功能。DWR2.0是DWR的一个版本,...
【SSH+DWR 整合详解】 SSH (Struts + Spring + Hibernate) 是一个流行的Java Web开发框架,它集成了MVC(Model-View-Controller)模式、依赖注入和持久层管理,为开发者提供了强大的后端支持。DWR (Direct Web ...
这是一个基于Java技术栈的OA(Office Automation)办公自动化管理系统项目,使用了经典的SSH(Struts、Spring、Hibernate)框架,并结合Direct Web Remoting (DWR) 技术。以下是这个项目涉及的关键知识点详解: 1. ...
SSH(Secure Shell)和DWR(Direct Web Remoting)是两种不同的技术,它们在Web开发中各有其用途。SSH主要用于提供安全的网络服务,如远程登录、文件传输等,而DWR则是一种JavaScript到Java的远程调用技术,使得前端...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的企业级应用程序。Struts2提供了MVC(Model-View-Controller)架构,Spring提供了依赖注入和事务管理,Hibernate则...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可扩展的Web应用程序。DWR(Direct Web Remoting)则是一个JavaScript库,它允许在浏览器和服务器之间进行实时的双向通信,...
《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...
SSH+DWR是一个常见的Web开发技术组合,用于构建动态、交互性强的Web应用程序。SSH代表Spring、Struts和Hibernate三个开源框架,它们分别是应用于服务层、表现层和数据持久层的解决方案。DWR(Direct Web Remoting)...
SSH2 (Struts2 + Spring + Hibernate) 和 DWR (Direct Web Remoting) 是两种常见的Java Web开发技术。在这个小例子中,它们被结合起来用于构建一个医药管理系统。下面将详细介绍这些技术及其在项目中的应用。 **SSH...