java - 获取 Activity UI 的 "Session Expired"消息

标签 java spring vaadin vaadin7

我们的 Java 8 和基于 Spring 的应用程序正在后台生成批量报告(PDF 文件)。这可能需要超过一到两个小时。生成每个报告后,在 UI(前端)中更新了百分比值的进度,因此 UI 在完成报告生成之前一直处于 Activity 状态,但由于某种原因我们得到 session 过期 报告生成过程中来自 Vaadin 框架的 UI 中的消息。
Vaadin 框架版本:7.6.2
网络服务器:Tomcat 7
心跳持续时间的值:默认值(未配置显式值)
web.xml 中 session 超时持续时间的值:默认为 30 分钟
closeIdleSessions 的值没有变化(默认情况下 closeIdleSessions=false)
任何人都可以帮忙找出原因吗?
Session Expired

最佳答案

如果唯一的 Activity 是通过 @Push 推送状态更新websocket,那么这可能不足以在 servlet 级别推迟 session 到期。
您可以通过确保不时有来自客户端的正常请求来解决此问题,只需重置 session 超时即可。这可以通过长时间间隔启用 UI 轮询来完成,例如ui.setPollInterval((int) Duration.ofMinutes(25).toMillis()); .
请记住在完成长任务后禁用轮询,否则它将继续保持您的 session 处于 Activity 状态。

关于java - 获取 Activity UI 的 "Session Expired"消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67818412/

相关文章:

database - Spring AOP——数据库审计

java - RemoteMessageProto 类中缺少方法 getRequestBuilder

java - 瓦丁 : CustomLayout don't generate <div> content

java - JMS 和 HornetQ

java - 使用 MongoDB 实现用于 hibernate 搜索的目录提供程序

java - 如何克隆 Wicket 组件,保留其配置,但更改其 ID

java - 使用junit启动和控制spring应用程序

java - Spring JPA - 更新 OnetoOne 关系的拥有端时出现 Stackoverflow 异常

css - Vaadin 菜单栏,元素的标题和图标之间的空间

java - 奇数和偶数 Java 更新有什么区别?