SSH+DWR异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session的解决办法
来源:互联网 发布:耳机音质排行榜知乎 编辑:程序博客网 时间:2024/05/09 05:39
在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了,问题都解决了,呵呵。
希望对也碰到这个问题的朋友能有所帮助
- SSH+DWR异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session的解决办法
- 异常: org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- 异常:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- SSH项目常见异常处理之[org.hibernate.LazyInitializationException: could not initialize proxy - no Session]
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- error:org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- Oracle数据类型与实体对象数据类型
- Oracle ADF 数据类型
- JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法
- ADF建立EO时触发的事件
- 第一天
- SSH+DWR异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session的解决办法
- 西班牙一餐馆推出“抗金融危机套餐”招引食客
- 快速掌握一个语言最常用的50%
- 数学之美 系列一 -- 统计语言模型(转)
- 《网络通信编程》课程期末论文要求
- 关于微软黑屏的"延伸"?
- 自动缩放图片大小
- 如何解决DotNET中跨线程访问控件的问题
- 中国著名股票软件优劣”专业点评”!转载