1

Vaadinアプリケーションを使用しており、使用中、Vaadinは最終的に「Sessionexpired」というエラーを表示しますが、このアプリをホストするGlassfishでは、セッションタイムアウトは8時間に設定されています(最後のアクセスから取得までの期間よりはるかに長い時間) 'セッションの有効期限が切れ')。アプリをデバッグした後、次のことを掘り下げました。ページの読み込み中に、Vaadinはを使用してセッションを要求します。request.getSession(true)後続のajax要求に対してはrequest.getSession(false);を使用します。そして最終的にはをrequest.getSession(false)返すnullので、session expiredメッセージが表示されます。Webコンテナはセッションタイムアウト設定を無視しているようです。

4

1 に答える 1

2

Glassfishのデフォルトのセッションタイムアウトは30分です。これがあなたの経験と一致する場合、8時間(28800秒)のタイムアウト設定はどういうわけか完全に無視されます。

タイムアウトはglassfish-web.xmlで指定できます:glassfish-web-app> session-config> session-properties> timeoutSeconds

または、web.xmlファイルでsession-timeout要素を指定することもできます。これは、timeoutSeconds値をオーバーライドします。

于 2012-11-15T10:16:54.337 に答える