2013-10-21 95 views
0

我正在從jsf1.1遷移到jsf2.0。當測試我已轉換的jsf頁面之一時,它遇到了其中一個類的java.io.NotSerializableException。在jsf1.1下我沒有收到這個錯誤。爲了解決這個問題,我將Serializable接口添加到類中。在我這樣做後,我在另一個班上得到同樣的錯誤。我知道我可以簡單地爲這個類添加Serializable接口來解決這個問題。但從jsf1.1遷移到jsf 2.0時,這是否正常?從jsf 1.1遷移到jsf 2.0遇到java.io.NotSerializableException

+0

? – Pablo

+0

它將用於'@ SessionScoped' bean,因爲應用程序服務器可以將會話變量序列化爲光盤。請注意,這是一個警告,而不是一個錯誤。 –

+0

相關:http://stackoverflow.com/q/3037722/1065197,http://stackoverflow.com/q/3851561/1065197,http://stackoverflow.com/q/18996151/1065197和更多:http:///stackoverflow.com/search?tab=votes&q=%5bjsf%5d%20NotSerializableException%20is%3aquestion –

回答

0

Technically,存儲在會話中的任何內容都應該是可序列化的。在JSF中,視圖和Flash範圍存儲在會話中。所以總之,任何不在請求範圍內的東西都會在會話中結束。但是,在事件序列化出會話之前,您不會看到錯誤。我不知道細節,但是在JSF 1.1和JSF 2.0實現方面有很大區別,因爲JSF 2.0在序列化會話時更加積極。

1

您現在只會收到此錯誤,因爲在JSF 1.x中,不需要部分狀態保存。關於JSF狀態保存的入門知識,See this question

從JSF 2.x的規格:

對於1.2版本的應用程序,並下,運行時不能使用的部分狀態保存機制。對於以上在2.0版本的應用程序,運行時必須使用的部分狀態保存機制

這一規定是什麼力量的任何及所有視圖組件,你改變一些管理bean的範圍可序列

+0

大抵如此。我最終爲幾個類添加了Serializable接口來使其工作。謝謝。 –

相關問題