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