1

我们正在使用 Vaadin 应用程序,在使用过程中,Vaadin 最终显示错误“会话已过期”,但在托管此应用程序的 Glassfish 中,会话超时设置为 8 小时(远远超过上次访问和获取之间的时间段) '会话已过期')。调试完应用后,我们发现了这个东西:在加载页面时,Vaadin 请求 session using 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 文件中指定会话超时元素。这会覆盖 timeoutSeconds 值。

于 2012-11-15T10:16:54.337 回答