懶載入異常說明及解決:could not initialize proxy-no Session
阿新 • • 發佈:2019-02-19
【問題介紹】
在專案中遇到這樣的錯誤反饋
別的沒有看懂,但是被紅線框著的地方肯定能看懂,沒有session值。這是懶載入異常的出現的情況。
【問題出現原因】
原因:一個請求來的時候先請求action,action再呼叫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>