2017-06-04 115 views
0

我正在尋找將一些Web應用程序從單一服務器環境移動到WebSphere集羣環境。我正在查看是否需要更改代碼。 Web應用程序使用JSF框架並使用用@SessionScope註釋的託管bean集羣環境中的JSF會話作用域受管bean

我對JSF知之甚少,但基於我讀到的內容,託管bean需要實現Serializable接口,如果它們要部署在集羣中環境,並且如果可以序列化/反序列化,WebSphere集羣將負責同步託管的bean。以上是真的嗎?

回答

0

是的,它們被序列化到HTTPSession中,HTTPSession本身可以跨羣集複製。如果發生故障切換,可以恢復它們。

在傳統的WebSphere中,這是通過「內存到內存會話複製」(對等體系結構)或使用共享數據庫。在Liberty Profile中,您必須使用WebSphere Extreme Scale(WXS)進行會話複製。

會話複製的設置將決定會話應對bean在故障轉移情況下的最新情況。

+0

因此,會話範圍中的託管bean必須實現可序列化的接口? – user2125853

+0

我相信是這樣。該規範並沒有使它1000%清晰,我記得在1.0天內有些模棱兩可(小寫'可序列化'vs'實現了Serializable接口'。我不知道我是否遵循過這個細微差別。 我會補充說bean依賴關係(它自己的注入點)也遞歸地需要可序列化。 這應該在部署時檢測到,因爲@sessionscoped需要具有鈍化功能(可串行化)的bean。 – covener