Vaadin会话超时和UI问题

时间:2014-04-30 09:26:23

标签: vaadin vaadin7 vaadin-touchkit

我发现Vaadin UI变为灰色并变为非活动状态,并且未显示会话过期消息。 此外,会话在1分钟后并不总是超时,我已将心跳设置为高于会话超时的值,因此会话应始终在心跳保持活动之前超时。

以下是我与会话到期相关的配置和代码。

<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>

在VaadinExample 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 个答案:

答案 0 :(得分:1)

240 1 - &gt;将超时设置为60(分钟)

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

如果服务器在3次尝试后没有收到1次心跳(4分钟* 3 = 12分钟)会话将被关闭..