有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取活动UI的“会话已过期”消息

我们基于Java 8和Spring的应用程序正在后台生成批量报告(PDF文件)。这可能需要一到两个多小时。在生成每个报表之后,UI(前端)中的百分比值已被更新,因此UI是活动的,直到完成报表生成,但由于某些原因,我们在报表生成过程中间从VAADIN框架中获得了UI E>强>会话到期/ <强> > EEM>消息。p>

Vaadin框架版本:7.6.2
Web服务器:Tomcat 7
心跳持续时间值:默认值(未配置显式值)
web中会话超时持续时间的值。xml:默认为30分钟
CloseIdResessions的值没有更改(默认情况下CloseIdResessions=false)

谁能帮我找到原因吗

Session Expired


共 (1) 个答案

  1. # 1 楼答案

    如果唯一的活动是通过@Pushwebsocket推出状态更新,那么这可能不足以推迟servlet级别的会话过期

    您可以通过确保不时有来自客户端的正常请求来解决这个问题,只需重置会话超时。这可以通过启用长时间间隔的UI轮询来实现,例如ui.setPollInterval((int) Duration.ofMinutes(25).toMillis());

    记住在长任务完成后禁用轮询,否则它将继续保持会话的活动状态