我已经嵌入了 tomcat 8.0.20 并在我的服务器中使用它。我构建了 tomcat websocket 示例,当我尝试在我的服务器中为所有 4 个示例(Echo、聊天等)运行它时。 我得到了
Info: WebSocket connection closed, Code: 1006
在控制台中它打印类似(每个样本的 url 都是正确的)
WebSocket connection to 'ws://localhost:9763/examples/websocket/echoProgrammatic' failed: Error during WebSocket handshake: Unexpected response code: 302
当我在 tomcat 上部署它时,它显示 404 错误而不是 302。
谁能告诉我这可能是什么原因?
在pom中,我的依赖如下
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
似乎未正确部署 websocket 实现。有人可以帮忙吗?
最佳答案
<dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency>
使用 Tomcat (groupId: org.apache.tomcat
) 提供的 websocket API 和 websocket 实现,而不是一些随机的第三方 jar。
你可以搜索Maven或者在源码的res/maven目录下查看pom文件。
范围“提供”意味着jar 仅在编译时使用,不会在运行时使用。
顺便说一句,当前版本的 Tomcat 实现了 WebSocket 1.1。
websocket 端点扫描由 javax.servlet.ServletContainerInitializer 的实现触发(在 META-INF/services/javax.servlet.ServletContainerInitializer
的 tomcat-websocket.jar
文件中配置)。
关于java - 信息 : WebSocket connection closed, 代码:尝试运行 websocket 示例时出现 1006,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29839137/