首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

OpenSessionInViewFilter失效有关问题解决(SSH2)

2012-11-13 
OpenSessionInViewFilter失效问题解决(SSH2)今天在用Hibernate延迟加载时,显示到界面出现如下问题: org.hi

OpenSessionInViewFilter失效问题解决(SSH2)

今天在用Hibernate延迟加载时,显示到界面出现如下问题:
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed

原因: 在界面加载数据时, session已经关闭,故报此错. 此前的对象只是代理对象(只有ID值)

故使用Spring 里的 OpenSessionInViewFilter 来解决此问题

在web.xml里配置

Xml代码:
    <!--Hibernate Open Session in View Filter-->?? <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>??

?

再测试, 问题依然存在,,, 纳闷....... 后来分析,再google... 终于发现问题出在Struts2上....

现在的web.xml里,我是把OpenSessionInViewFilter的配置放在Struts2后面的.

更改下前后顺序, 神奇的解决了:)?? 正确的配置顺序如下:

?

Xml代码 :
    <!--Hibernate Open Session in View Filter 注意要放在Struts2配置前面-->?? <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>???

热点排行