我已经嵌入了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实现。有人可以帮忙吗?
答案 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)。这是一个错误。