【问题标题】:websocket code not working on Prod Tomcat Server - 404 Errorwebsocket 代码在 Prod Tomcat 服务器上不起作用 - 404 错误
【发布时间】:2017-09-20 01:15:52
【问题描述】:

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

我尝试将它部署在 Tomcat 服务器上,其 url 可以使用 https 访问,方法是将 ws:// 更改为 wss://,它在我的开发环境中工作,但是当我在生产环境中部署相同的代码时,它会抛出以下错误控制台:

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

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

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

对于我正在使用的 Prod(注意 url 中的 .com):

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

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

【问题讨论】:

  • 视情况而定。 PROD 中的常见情况是您有一个 Web 层(apache 或任何其他充当反向代理的 Web 服务器)。该层定义了重定向规则,例如,对 xxxxxx-xxx.xxxx.com/websoc 的请求将被重定向到 prod_ip:8443/websoc。在这种情况下,您不需要指定端口。我的建议是用你的 webapp 部署一个简单的文件 (index.html) 并尝试访问 xxxxxx-xxx.xxxx.com/websoc/index.html。如果你得到一个 404,那么问题不在于 websocket,而在于 web 层重定向。
  • @MarcoA.Hernandez:当我部署战争文件时,我可以访问 xxxxxx-xxx.xxxx.com/websoc/index.html
  • 你所有的调用(到 index.html 和 websocket)都是 https 吗?你可以试试http调用吗?如果您使用反向代理,您可以直接访问 tomcat 吗?
  • @MarcoA.Hernandez:是的,都是 https。不允许使用 http。我们也无法访问 Tomcat
  • 你能创建一个简单的html页面来测试websocket,然后交给Tomcat的所有者来测试直接连接吗?另外,你有没有tomcat的部署日志来检查是否有问题?

标签: java tomcat websocket


【解决方案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控制台是否有错误。

【讨论】:

  • 已编辑问题标题。它在一个 tomcat 上工作,但在另一个上不工作
  • 我测试了一些场景并返回了新的发现。请看一下
  • 其实tyrus-container-server就足够了。 tyrus-client 是它的依赖项,会自动引入。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 2017-05-31
    • 2016-07-03
    • 2015-12-28
    • 2017-07-17
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多