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)
谁能帮我找到原因吗
# 1 楼答案
如果唯一的活动是通过
@Push
websocket推出状态更新,那么这可能不足以推迟servlet级别的会话过期您可以通过确保不时有来自客户端的正常请求来解决这个问题,只需重置会话超时。这可以通过启用长时间间隔的UI轮询来实现,例如
ui.setPollInterval((int) Duration.ofMinutes(25).toMillis());
记住在长任务完成后禁用轮询,否则它将继续保持会话的活动状态