一尘不染

WebSocket握手:意外的响应代码:404-

tomcat

我正在学习有关websocket的信息,并按照此处的说明进行操作:http
:
//www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html

我正在使用tomcat v8.0.21部署我的Web应用程序,但出现以下错误

当我访问Web应用程序时,我的JavaScript项目看起来很好:我的本地主机并访问WebSocketJavaScriptProject

虽然在控制台窗口中出现以下错误:WebSocket与“ ws:// localhost:8080 / WebsocketHome /
actions”的连接失败:WebSocket握手期间出错:意外的响应代码:404

我的代码在这里:https :
//github.com/darkcloudi/WebSocketProject

我的应用程序与Oracle上的示例之间的区别在于,我将其分为两个项目,一个是服务,另一个是Webapp。

我无法弄清楚为什么要得到404,因为服务.war文件称为WebsocketHome。有什么想法会导致此问题吗?通常找不到404,所以猜测它找不到服务,我确定自己做的很蠢,但是无法弄清楚问题出在哪里

谢谢


阅读 666

收藏
2020-06-16

共1个答案

一尘不染

握手期间会发生错误,因为Tomcat有自己的websocket
API。因此,您可能在pom.xml中添加了JSR实现或类似于javax.websocket-api的东西,在运行时会发生冲突。

尝试不要将Websocket库导出到Web服务器,因此它使用自己的实现。

如果您使用Maven,请按照提供的步骤设置websocket依赖项:

<!-- Provided Websocket API, because tomcat has its own implementation -->
<dependency>
    <groupId>javax.websocket</groupId>
    <artifactId>javax.websocket-api</artifactId>
    <version>1.1</version>
    <scope>provided</scope>
</dependency>
2020-06-16