gpt4 book ai didi

java - 无法从浏览器访问远程 Spring Boot 应用程序

转载 作者:行者123 更新时间:2023-11-28 22:47:29 35 4
gpt4 key购买 nike

检查引用问题:

  1. > Tomcat server not working “externally”
  2. > Spring Boot Service works locally but not remotely
  3. > How to configure embedded Tomcat integrated with Spring to listen requests to IP address, besides localhost?

我们在 192.168.22.125 Linux 环境中的嵌入式 tomcat 服务器中将 Spring Boot 应用程序部署为独立的 Java 可执行文件。在相同的环境中,我们还有在不同端口 (9045) 上运行的 Weblogic 12C 应用程序,我们可以通过浏览器访问它。假设我们在 Spring Boot 应用程序中有一个休息端点 192.168.22.125:8888/jobs/uploads,我们可以从 Java 应用程序(也部署在 Weblogic 中)访问这个端点,如下所示。

    URL url = new URL(serverURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
...
...

但是我们无法从浏览器或在 Windows powershell 中使用 wget 访问相同的内容。引用问题1,我们发现问题出在浏览器上。引用问题2,解决方案可能是将端口添加到路由器配置中(如果没有其他方法,这将是最后一个选项)。当我在连接到 8888 端口的那个环境的 puttyt 上尝试 netstat 时,输出是

tcp46      0      0  :::.8888                 :::.*   LISTEN

但是对于运行 Weblogic 应用程序的端口 9045,输出是

tcp46      0      0  192.168.22.125:9045      *.*     LISTEN

所以在引用问题3之后,我尝试了server.address=192.168.22.125,希望Tomcat能够绑定(bind)this并开始监听请求。尽管 netstat 输出发生了变化,但结果是一样的(也许我在这里缺少一些逻辑理解?)。

所以我的问题是,

  1. 我还需要尝试哪些其他解决方案?
  2. 为什么部署在 Weblogic 中的应用程序可以访问,但不能从浏览器访问 Spring Boot 应用程序?需要完成哪些额外的设置/配置?
  3. 为什么来自 Java 应用程序(部署在 Weblogic 中)的请求成功但来自浏览器的请求却没有?是因为 Java 应用程序在与 Spring boot 应用程序相同的环境中运行,还是在此类请求的情况下遗漏了一些检查?

任何有助于进一步了解这些网络事物的额外资源都将非常有帮助。谢谢。

最佳答案

答案:通过推论,您似乎能够访问端口 80 上的 Weblogic 应用程序,因为您的路由器转发了端口 80。如果在同一 Linux 实例(即本地主机)上运行的 Java 应用程序可以访问 REST api,那么您似乎很清楚需要在防火墙设置中转发 REST api 的端口 - 在您的示例中为端口 8888。

如果Windows机器和REST服务之间有防火墙,不转发端口就无法直接访问。

此外,请确保在您的网址中包含非标准端口,如下所示:

http://192.168.22.125:8888/jobs/uploads

假设:如果我理解你的问题,你有一个托管 Weblogic Web 应用程序和 Spring Boot REST api 的 Linux 实例。您可以通过 Windows 计算机的远程连接直接在浏览器中访问 Weblogic 应用程序,但不能访问 REST api。同一 Linux 实例上的 Java 应用程序可以访问 REST api。如果我没理解错的话,Windows 机器和 Linux 实例之间也有防火墙。

关于java - 无法从浏览器访问远程 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53774240/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com