tomcat - Vaadin 网络应用程序停止响应,直到我清除浏览器数据或使用 Chrome 隐身模式

标签 tomcat caching web-applications push vaadin

我有一个 Vaadin 网络应用程序(带有 Websocket Push 的 Servlet 3.0 版),我将其编译成一个 war 文件并部署在 Tomcat 8 上(在 Linux 64 位 RHEL 6 网络服务器上)。然后,我在家庭网络上使用 Google Chrome 尝试连接到它。

描述

  • 全新部署后,使用 Google Chrome 连接到它,该应用在使用的前 15-20 分钟内运行良好(并且响应完美)。

  • 之后,它停止响应。重新加载栏卡住了,尝试重新连接到页面不起作用(新选项卡,新浏览器实例)。 Chrome 卡在“正在等待(主机)...”。

  • 当我清除浏览数据(全部)后,我可以像往常一样连接到网络应用程序。此外,如果我使用 Chrome 隐身模式(没有浏览历史记录),网络应用程序运行良好。 Firefox 也是如此

在 Tomcat 中尝试的解决方案

我尝试将以下参数添加到 Tomcat Context.xml:

<Context cachingAllowed="false" cacheMaxSize ="0" cacheTTL="1">

在 Vaadin 中尝试的解决方案

  • 我尝试使用 Vaadin 的 ?restartApplication 选项连接到我的 webapp
  • 我尝试了 3 种不同的推送实现(Websocket、长轮询、流)
  • 我试过禁用推送

我尝试过的解决方案都没有奏效。有人有什么想法吗?我是否对 Vaadin 存储的用户状态管理不善?

编辑

忘记提及,Tomcat 日志中没有任何异常或不良行为的痕迹。事实上,网络应用程序停止响应后就没有输出。

另一个编辑

我忘了提及网络服务器位于负载平衡器(Google Compute Engine)之后。一位 friend 刚刚建议,可能是负载均衡器和过期 cookie 有问题。

最佳答案

我收到了来自 Vaadin 论坛的建议:

https://vaadin.com/forum#!/thread/9551763/9568195

关于tomcat - Vaadin 网络应用程序停止响应,直到我清除浏览器数据或使用 Chrome 隐身模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178410/

相关文章:

java - 借助 URL 在本地浏览器中显示来自服务器的 .log 内容

C++ 设置使用线性探测?

java - 如何在 Dropwizard 中实现 Guava 缓存?

c# - WebRTC 媒体服务器

java - 简单的WebSocket客户端无法连接到tomcat java websocket

windows - 如何在 30 秒内关闭 tomcat windows 服务(或向 SCM 询问更多时间)

java - Tomcat 错误 : The markup in the document following the root element must be well-formed

spring - 如何在 Java Spring 应用程序中缓存使用 Netflix Feign 库发出的 HTTP 请求

java - 基于 Java 的简单 CRUD 网站的最佳技术

javascript - 如何防止自动点击赞成票/反对票按钮的垃圾邮件?