信息:WebSocket连接关闭,代码:1006,同时尝试运行websocket示例

时间:2015-04-24 05:06:11

标签: java tomcat websocket tomcat8 embedded-tomcat-8

我已经嵌入了tomcat 8.0.20并在我的服务器中使用它。我构建了tomcat websocket示例,当我尝试在我的服务器中运行它时,所有4个示例(Echo,chat等等) 我正在

  

信息:WebSocket连接已关闭,代码:1006

在控制台中,它会输出类似的内容(每个样本的网址都是正确的)

  

WebSocket连接到   'ws:// localhost:9763 / examples / websocket / echoProgrammatic'失败:   WebSocket握手期间出错:意外的响应代码:302

当我在tomcat上部署它时,它显示404错误而不是302。

有人可以告诉我这可能是什么原因吗?

在pom中,我的依赖关系如下

 <dependency>
     <groupId>javax.websocket</groupId>
     <artifactId>javax.websocket-api</artifactId>
     <version>1.0</version>
     <scope>provided</scope>
 </dependency>

似乎没有正确部署websocket实现。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

  

<dependency> <groupId>javax.websocket</groupId> <artifactId>javax.websocket-api</artifactId> <version>1.0</version> <scope>provided</scope> </dependency>

使用websocket提供的websocket API和websocket实现(groupId:org.apache.tomcat),而不是一些随机的第三方jar。

您可以搜索Maven或查看源代码的res / maven目录中的pom文件。

范围“提供”表示jar仅在编译时使用,而不是在运行时使用。

BTW,当前版本的Tomcat实现了WebSocket 1.1。

通过javax.servlet.ServletContainerInitializer的实现(在META-INF/services/javax.servlet.ServletContainerInitializer的{​​{1}}文件中配置)触发了对websocket端点的扫描。

答案 1 :(得分:0)

这完全是个错误。在tomcat示例中,所有URL都使用示例进行硬编码,但我的上下文是示例(没有s)。这是一个错误。