【问题标题】:using Websockets with Tomcat将 Websocket 与 Tomcat 一起使用
【发布时间】:2015-05-22 12:29:22
【问题描述】:

我正在尝试使 this 示例工作

但是当我将war文件部署到Tomcat并启动时,无法建立连接。

在浏览器控制台中,我看到客户端尝试连接到http://localhost:8080/Spring4WebSocket/add/info 并接收404,尽管在 start.jsp 中指定的连接 URL 是 /Spring4WebSocket/add(最后没有那个“/info”部分)。

为什么这个奇怪的“/info”后缀被添加到 url 中,我可以做些什么来改变它并让这个例子正常工作?

此解决方案对我没有帮助: SockJs - 'info' path not found

【问题讨论】:

  • 你用的是什么版本的tomcat?你需要 7.0.52+
  • 版本为 7.0.59。

标签: java spring tomcat websocket spring-websocket


【解决方案1】:

/info URL 被 SockJS (see docs) 调用:

...在客户端启动会话之前。它用于检查服务器功能(websocket 支持、cookie 要求)并获取“origin”设置的值(当前未使用)。

我查看了您所遵循的示例,但没有发现任何问题。它紧跟 Spring 指南:Using WebSocket to build an interactive web application,所以它应该可以工作。

不过只有一个问题。您是否完全按照说明操作或从页面下载了 zip 文件,还是您自己创建的?您在此处的第一个 SockJS 请求中收到该错误:

var socket = new SockJS('/Spring4WebSocket/add');

您的应用程序是否也称为Spring4WebSocket 或其他名称?如果它被称为其他东西,请改用它:

var socket = new SockJS('/YourAppNameGoesHere/add');

【讨论】:

  • 是的,这是我检查的第一件事。我的应用程序就是这样调用的。无论如何感谢您的回答。
  • @user2246018:我已经下载并安装了您发布的链接附带的项目,它可以正常工作。你检查过你的代码吗?有什么不同吗?您的 WebAppInitializer.onStartup 方法是否被调用来加载 Spring 上下文?
猜你喜欢
  • 2021-09-16
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 2014-10-31
  • 2015-09-28
  • 2017-08-08
相关资源
最近更新 更多