2013-02-15 52 views
1

我試圖在Weblogic 10g的集羣環境中使用我的Java應用程序,並且會話複製出現問題,因爲通常在會話中的很多類不會實現Serializable接口。集羣環境中的序列化問題

在這些類中的一箇中,問題是不可序列化的ServletContext屬性。 我正確地認爲這個屬性應該用transient關鍵字來標記嗎?

謝謝!

回答

2

如果你不需要它,你可以將它標記爲transient,序列化將忽略它。請記住,它將在反序列化時爲空...

+0

但是,爲什麼我需要它持續?當會話被複制時,我不知道這個影響。用戶是否會失去該會話並需要重新登錄?我實際上試圖做的是將會話複製到集羣中的新節點,而不會讓用戶鬆散會話,然後再次登錄。 – qxlab 2013-02-15 17:46:38

+1

你幾乎肯定不會像服務器到服務器那樣顯示ServletContext。我甚至會說,有一個指向它的指示表明設計不好。但是,如果您確實需要一個指向它的指針,則需要通過實現'private void readObject(ObjectInputStream ois)'來執行自定義操作時,在對象反序列化時重置它。 – 2013-02-16 11:35:41