我正在尝试运行我的第一个websocket应用程序并引用this link to get some sample code。我只是创建了CustomEndPoint
,WSClient
类,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中明确提供端口号?
答案 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
为我工作。