java - 在 Tomcat 中使用 Websockets

标签 java spring tomcat websocket spring-websocket

我正在尝试制作 this示例工作

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

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

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

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

最佳答案

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

...before the client starts the session. It's used to check server capabilities (websocket support, cookies requirement) and to get the value of "origin" setting (currently not used).

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

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

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

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

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

关于java - 在 Tomcat 中使用 Websockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30396772/

相关文章:

java - NullPointerException - 尝试调用虚拟方法 `notifyDataSetChanged()`

java - Java EE 中的无状态单例

java - 用spring配置集群hornetq客户端

java - Spring Jersey : How to get rid of web. xml?

tomcat - tomcat 9一开始是正常的,现在老是开始不灵了,怎么解决?

tomcat中的Java堆空间错误

java - 打开一些自定义入站端口,例如使用 80 或 3389 得到 8077

java - 如何在 IntelliJ 中更改 Maven 的 Java 版本?

java - 如何在控制台中打印 Hibernate ID?

java - spring mvc servlet初始化