当前位置: 首页 > 知识库问答 >
问题:

Vaadin会话超时和UI问题

聂煜
2023-03-14
<context-param>
 <param-name>heartbeatInterval</param-name>
 <param-value>240</param-value>
</context-param>

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

<servlet>
    <servlet-name>VaadinExample</servlet-name>
    <servlet-class>com.example.VaadinExample</servlet-class>
    <init-param>
      <param-name>closeIdleSessions</param-name>
      <param-value>true</param-value>
    </init-param>
</servlet>
getService().setSystemMessagesProvider(
            new SystemMessagesProvider() {
            @Override 
            public SystemMessages getSystemMessages(
                SystemMessagesInfo systemMessagesInfo) {
                CustomizedSystemMessages messages =
                        new CustomizedSystemMessages();
                messages.setSessionExpiredCaption("Session Expired");
                messages.setSessionExpiredMessage("You have been inactive for over 30mins, click here to reload the application.");
                messages.setSessionExpiredNotificationEnabled(true);
                return messages;
            }
        });

有什么想法吗?

共有1个答案

丁灿
2023-03-14

240 1-->将超时设置为60(分钟)

浏览器每240秒发送1个心跳(每4分钟)。或者你的超时是1分钟...

如果服务器在3次尝试(4分钟*3=12分钟)后仍未接收到1次心跳,会话将关闭。

 类似资料:
  • 我有一个问题发生在我坐在空闲的时候,没有接触网络浏览器,vaadin在点击vaadin应用程序中的任何内容之后,就会抛出红色的通信问题错误消息。 我已经通过30分钟不接触浏览器进行了测试。之后,当我单击vaadin应用程序中的一个按钮时,它会抛出通信错误消息。 我有两个应用服务器,它们位于Rackspace的负载均衡器后面。我还启用了“粘性会话”... vaadin可能有自己的超时吗?

  • Vaadin7会话超时有几个问题。首先,即使我尝试将heartbeatinterval更改为20秒,Vaadin debug仍然说它是默认值300秒。 另一个问题是,除了通信错误消息之外,我根本无法获得会话超时消息。无论会话是1分钟还是2分钟,或者比heartbeatinterval更长的时间都无关紧要。 第三个问题是,在通信错误消息中总是有“无效的JSON-response from serve

  • 我正在开发一个vaadin web应用程序,我在web.xml中添加了以下代码片段。 现在我注意到,也在30分钟后,我的用户能够使用应用程序,我不想这样。我在vaadin的书上读到了一些关于这个问题的东西,但我并不了解一些东西。 在web.xml中: 会话超时应长于心跳间隔,否则会话在心跳保持活动之前就已关闭。由于会话过期使UI处于假定会话仍然存在的状态,这将在浏览器中导致不同步错误通知。 但是,

  • 在我的Vaadin应用程序中,当Vaadin在“session Timeout”消息之后没有使会话无效时,我遇到了一个问题。收到此消息后,用户有时可以单击链接或刷新页面,并继续工作,就像他们仍在登录一样。我使用以下参数: Last参数(session-timeout)也在context.xml(session-timeout=900)和web.xml(session-config/session-

  • 在 HTTP 协议中,当客户端不再处于活动状态时没有显示的终止信号。这意味着当客户端不再处于活跃状态时可以使用的唯一机制是超时时间。 Servlet 容器定义了默认的会话超时时间,且可以通过 HttpSession 接口的 getMaxInactiveInterval 方法获取。开发人员可以使用HttpSession 接口的 setMaxInactiveInterval 方法改变超时时间。这些方法

  • 我用Spring MVC构建了一个应用程序,并用Spring security进行了保护,一堆控制器是JSON rest服务,它们都受到了保护。我使用来检测AJAX请求,并在会话超时发生时发送错误代码-所有其他请求只需重定向回登录页面。 下面是Spring Security XML片段和authenticationEntryPoint java类。