2011-10-31 51 views
0

我們最近從6.1遷移到了WebSphere 7.0,並從JSF1.1升級到了JSF1.2。每次會話過期和任何通過瀏覽器提交現在我得到異常:在過期會話期間恢復視圖時的JSF 1.2異常

Caused by: javax.faces.application.ViewExpiredException: viewId:/Foo/Bar.jsp - View /Foo/Bar.jsp could not be restored. 

我怎樣才能防止這種錯誤?

  • 請求的結果在與輸入字段相同的頁面上呈現。
  • 我正在使用一個會話範圍的支持bean的頁面。

編輯:它看起來像一個爲7.0/JSF 1.2遷移問題看https://www.ibm.com/developerworks/forums/thread.jspa?threadID=332460&tstart=30(沒有提供答案)

BalusC這裏解釋了爲什麼會發生javax.faces.application.ViewExpiredException: View could not be restored。但爲什麼之前沒有發生?在遷移之前,幾個應用程序工作正常。

+0

稍微offtopic問題,但你爲什麼近2011年年底仍遷移到的東西一樣古老的WebSphere 7和JSF 1.2?兩者都已被WebSpere 8和JSF 2.1提供更好的功能。 –

+0

1.使用最新版本的IBM產品並不是一件輕鬆的事情。 2.管理決策。 – Stefan

回答

1

這不是JSF 1.2的新功能,也與Websphere無關。

我的猜測是你以前有過狀態存儲在客戶端,因此以前從未遇到過這個異常。 JSF中的默認值是保存服務器上的狀態。您可以通過將以下在web.xml中明確要求國家在客戶端上:

<context-param> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>client</param-value> 
</context-param> 

更詳盡的答案見這個問題:Why JSF saves the state of UI components on server?

+0

設置始終是服務器。 – Stefan