2013-12-12 33 views
0

後,我有一個變量的類,它是短暫的,因爲它不是序列化,只有當Tomcat是org.apache.catalina.core.StandardContext刷新相同的變量爲空,不知道爲什麼...瞬時變量爲空org.apache.catalina.core.StandardContext重裝

public class bean extends UnicastRemoteObject implements clientInterface{ 
(...) 
    private transient OAuthService service; 
(...) 
} 
當它出現在 netbeans

的Apache Tomcat登錄org.apache.catalina.core.StandardContext重裝那麼這個變量爲空....

有人能告訴我爲什麼嗎?

回答

0

如果變量屬於以某種方式連接到HTTP會話的對象,則會發生這種情況。

重新加載會話的內容被序列化後,會創建一個新的類加載器,然後會話被反序列化。

所以如果變量被標記爲瞬態的,它不會被序列化,並且當重新加載完成時它的內容將是空的。

看到tomcat documentation持久性跨重新啓動部分進行序列化和重載之間的關係,以及在Tomcat如何處理重新啓動的一些細節該blog post會話持久性

+0

是的,我讀過一些文檔,只是我甚至無法達到解決方案。 已嘗試將其放入context.xml中: 只有當他每次打破會話時才重新加載。而不是它...... – user2989745

+0

也許最好是發佈OAuth服務正在使用的類的代碼,它似乎被連接到奇怪的會話 –

+0

我編輯了帖子,我保存了會話一個實例化的bean對象類型。 – user2989745