具有过期会话的视图恢复期间的JSF 1.2异常

时间:2011-10-31 16:20:47

标签: java websphere-7 jsf-1.2 ibm-jsf

我们最近从6.1迁移到WebSphere 7.0,并从JSF1.1升级到JSF1.2。每次会话到期并且通过浏览器提交任何内容时,我现在都会遇到异常:

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

如何防止该错误?

  • 请求的结果与输入字段在同一页面上呈现。
  • 我正在为页面使用会话范围的辅助bean。

编辑:它看起来像WAS 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。但为什么以前没有发生过呢?在迁移之前,有几个应用程序正常运行。

2 个答案:

答案 0 :(得分:2)

这对于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?

答案 1 :(得分:0)

你检查过这个吗? Handling 'session expired' in JSF web application, running in JBoss AS 5

至少这就是我在JSF应用程序中处理会话过期的方式。

希望它有所帮助 史蒂芬