我正在学习有关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,所以猜测它找不到服务,我确定自己做的很蠢,但是无法弄清楚问题出在哪里
谢谢
握手期间会发生错误,因为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>