【发布时间】:2011-04-08 14:21:41
【问题描述】:
我的 IceFaces 应用程序在会话到期时崩溃。它没有显示“用户会话已过期”或“网络连接中断”消息。
我的猜测是再次加载相同的页面,并且由于支持 bean 代码找不到会话变量,它会抛出以下异常:
exception
javax.servlet.ServletException: java.lang.Exception: javax.faces.FacesException: Problem in renderResponse: /main-template.jspx: User session has expired or it was invalidated.
root cause
java.lang.Exception: javax.faces.FacesException: Problem in renderResponse: /main-template.jspx: User session has expired or it was invalidated.
root cause
javax.faces.FacesException: Problem in renderResponse: /main-template.jspx: User session has expired or it was invalidated.
root cause
javax.el.ELException: /main-template.jspx: User session has expired or it was invalidated.
root cause
com.icesoft.faces.webapp.http.core.SessionExpiredException: User session has expired or it was invalidated.
root cause
java.lang.IllegalStateException: PWC2778: getAttribute: Session already invalidated
异步更新开启,jsp页面有<ice:outputConnectionStatus />组件。
关于如何阻止这种情况发生的任何想法?
注意:我做了很多花哨的事情,比如在会话超时时重定向,并显示 java.lang.Throwable 的错误页面,但我已经全部注释掉了 - 没有运气。当重定向和错误处理都打开时,应用程序第一次会显示错误页面,然后在一段时间后重定向到“会话到期”页面。
谢谢
【问题讨论】:
标签: jsf icefaces session-timeout