java - Vaadin 应用程序中忽略 Glassfish session 超时

标签 java glassfish vaadin session-timeout

我们正在使用 Vaadin 应用程序,在使用过程中,Vaadin 最终会显示错误“ session 已过期”,但在托管此应用程序的 Glassfish 中, session 超时设置为 8 小时(比上次之间的时间长得多)访问并获取“ session 已过期”)。调试应用程序后,我们发现了这个问题:加载页面时,Vaadin 使用 request.getSession(true) 请求 session 。 ,对于后续的 ajax 请求,它使用 request.getSession(false) ;最终request.getSession(false)返回null ,所以session expired出现消息。看来 Web 容器忽略了 session 超时设置。

最佳答案

Glassfish 中的默认 session 超时为 30 分钟。如果这符合您的体验,则 8 小时(28800 秒)的超时设置会以某种方式被完全忽略。

您可以在 glassfish-web.xml 中指定超时: glassfish-web-app > session 配置 > session 属性 > timeoutSeconds

或者您可以在 web.xml 文件中指定 session 超时元素。这会覆盖 timeoutSeconds 值。

关于java - Vaadin 应用程序中忽略 Glassfish session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13356169/

相关文章:

java - 如何使用Eclipse在Java中查找抛出异常的类

java - 在 toString 实现中捕获通用异常 - 不好的做法?

glassfish - 部署 glassfish v3 时出现许多警告

java - vaadin (14.4.4) 应用程序 : Failed to determine project directory for dev mode . .. 在部署之前生成 "flow-build-info.json"

java - 使用 GWT Graphics 在 Vaadin Java 中创建新线程

java - 在 vaadin 中执行一次函数

javascript - 实现 JSON 解析器

java - 冒泡排序优于选择排序?

java - 本地主机 4848、8080 问题

java - Glassfish 2.1.1 - session Bean 重复调用 init() 和 destroy()