1. 程式人生 > >懶載入異常說明及解決:could not initialize proxy-no Session

懶載入異常說明及解決:could not initialize proxy-no Session

【問題介紹】

在專案中遇到這樣的錯誤反饋

別的沒有看懂,但是被紅線框著的地方肯定能看懂,沒有session值。這是懶載入異常的出現的情況。

【問題出現原因】

原因:一個請求來的時候先請求actionaction再呼叫service(完成業務處理),所以需要在service的開始邊界開啟事務,開啟session,在service的結束邊界關閉事務,提交事務,最終生成結果result。所以就是在service裡面查詢資料,在頁面裡面顯示result。在頁面載入的使用用到了懶載入的屬性,但是在之前session已經關掉了,沒有session所以會出現懶載入異常,跟事務管理和session管理有關係。

【解決方式】

加過濾器或攔截器,把session的關閉放到頁面顯示完之後,進行統一的處理。


//使用OpenSessionInViewFilter解決解決懶載入問題,在web.xml中配置,放到struts過濾器之前:
	<!-- 配置Spring的OpenSessionInViewFilter,以解決懶載入問題  -->
	<filter>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>OpenSessionInViewFilter</filter-name>
		<url-pattern>*.action</url-pattern>
	</filter-mapping>