BalusC's answer私のアプリでこの要件を満たすのに役立ちましたが、私はPrimeFacesを使用しているので、私はBalusCの答えがこれを行うために使用しているコードにどのように影響を与えたかを共有したいと思っていました。いつものように
XHTMLページ
<p:poll listener="#{pf_usersController.keepUserSessionAlive()}"
interval="#{session.maxInactiveInterval - 10}" />
豆
public void keepUserSessionAlive() {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
request.getSession();
}
、BalusCをありがとう!
編集:エンドユーザが今朝テストにこれを入れて、それは素晴らしい作業です!私のアプリケーションは通常、フルページリフレッシュの15分後にセッションタイムアウトを強制します(session.maxInactiveIntervalとweb.xmlのセッションタイムアウト値に基づいてmeta refreshを使ってsessionExpired.xhtmlにリダイレクトします)。 AJAX!=フルページのリフレッシュが行われているので、セッションはタイムアウトしますが、このコードはエンドユーザーがアプリケーションの給与計算ページにいる間にエンドユーザーに「セッションを有効にしてください」を許可し、セッションは有効です1〜2時間! :)
ユースケースについて説明できますか? –
@AdrianMitev確かに、私はいくつかのコメントを追加しました。 ViewExpiredExceptionは約10分後に発生します。タイムアウト時間を変更することはできません。 – OddProblems