websocket代码无法在Prod Tomcat服务器上运行 - 404错误

时间:2016-06-21 09:27:23

标签: java tomcat websocket

我正在尝试运行我的第一个websocket应用程序并引用this link to get some sample code。我只是创建了CustomEndPointWSClient类,html文件,然后在netbeans IDE上运行它,它就像一个魅力。

我尝试将其部署在可以使用https访问其网址的tomcat服务器上,方法是将ws://更改为wss://,并且它在我的开发环境中运行,但是当我在生产环境中部署相同的代码时在控制台中输入以下错误:

  

WebSocket连接到' wss://xxxxxx-xxx.xxxx。 com / websoc / ratesrv'失败:WebSocket握手期间出错:意外的响应代码:404

对于开发环境,我在WS调用下工作:

wsocket = new WebSocket("wss://dev_ip:8443/websoc/ratesrv");

对于我使用的产品(请注意网址中的 .com ):

wss://xxxxx-xxxxx.xx.com/websoc/ratesrv

我是否需要在PROD中明确提供端口号?

2 个答案:

答案 0 :(得分:1)

您的Tomcat版本是否包含Websockets Runtime?

  • 如果是,则必须从WAR中删除所有Websockets依赖项。确保在更改范围后调用mvn clean。

  • 如果没有,您应该加入它。如果你想使用Tyrus只需要

<dependency>
    <groupId>org.glassfish.tyrus</groupId>
    <artifactId>tyrus-container-servlet</artifactId>
    <version>1.12</version>
</dependency>

<dependency>
    <groupId>org.glassfish.tyrus</groupId>
    <artifactId>tyrus-client</artifactId>
    <version>1.12</version>
</dependency>

检查部署时Tomcat控制台中是否存在错误。

答案 1 :(得分:0)

尝试使用最新版本的tomcat。 tomcat8.5.20为我工作。