0
我目前正在使用Websphere 8.0上的JSF進行編程,並且遇到了一個問題,我認爲這是因爲我們的集羣。我們有兩個節點,一段時間後,我的問題沒有發生。Websphere 8集羣和JSF2問題
我的問題是,我通過commandButton提交後通過javax.faces.application.ViewExpiredException結束。
此外,在此之前,堆棧跟蹤,我發現這一點:
View State cannot be reconstructed
javax.faces.FacesException: javax.faces.application.ViewExpiredException
at org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:496)
at org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:378)
所以我想有一些錯誤的兩個節點之間的處理。
在我的web.xml我已設置:
<distributable />
和
<env-entry>
<env-entry-name>jsf/ClientSideSecretKey</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>SRe1FY2HKwBTOtT5KrtmiSoOzws+NA9/yX191wMFn9o=</env-entry-value>
</env-entry>
像其他一些在其他線程中提到,但我的問題仍然存在。
Websphere內部可能有一些配置?
無論如何,如果在用戶會話當前存在於一個節點的情況下關閉了節點自動切換節點,我從來沒有見過。防火牆/ LB會將它們放到節點#1,並且所有基於cookie的請求都會在那裏重定向?如果服務器停止/啓動,他們的會話是死的,因此視圖過期?並且下次他們登錄LB時將它們發送給'up'節點/服務器? – VeenarM
WebSphere ND和其他服務器 - 通過會話故障切換支持這一點。在這種情況下,如果某個節點發生故障,則來自故障節點的會話可以被另一個節點接收並繼續。 (這是集羣的動機...) – wtlucy
也許一個正確配置的環境的樂趣:P – VeenarM