OpenSession InView Filter失効問題解決(SSH 2)
今日はHybernateで遅延してロードする時、インターフェースに次のような問題が現れました.org.hibernate.LazyInitialization Exception:could not initiaze proxy-the owning Session was closed原因:インターフェイスでデータをロードする時、sessionはすでにオフしました.このエラーを報告しました.これまでの対象は代理対象です.だからSpringのOpenSession InViewelterを使ってこの問題を解決してweb.xmlの中で配置します.
再テストでは、問題は依然として存在しています. やっと問題がStruts 2に出てきました.
今のweb.xmlでは、OpenSession InViewelterの配置をStruts 2の後ろに置いています.
前後の順序を変更して、不思議な解決ができました.) 正しい配置手順は以下の通りです.
<!--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>
再テストでは、問題は依然として存在しています. やっと問題がStruts 2に出てきました.
今のweb.xmlでは、OpenSession InViewelterの配置をStruts 2の後ろに置いています.
前後の順序を変更して、不思議な解決ができました.) 正しい配置手順は以下の通りです.
<!--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>