Java 无法从浏览器访问远程Spring启动应用程序

Java 无法从浏览器访问远程Spring启动应用程序,java,spring,spring-boot,tomcat,Java,Spring,Spring Boot,Tomcat,检查参考问题: 我们在192.168.22.125 Linux环境下的嵌入式tomcat服务器上部署了Spring Boot应用程序,作为独立的Java可执行文件。在相同的环境中,我们还可以在不同的端口(9045)上运行Weblogic 12C应用程序,并且可以通过浏览器访问它。假设我们在SpringBoot应用程序中有一个rest端点,即192.168.22.125:8888/jobs/uploads,我们可以从Java应用程序(也部署在Weblogic中)访问该端点,如下所示

检查参考问题:

  • 我们在192.168.22.125 Linux环境下的嵌入式tomcat服务器上部署了Spring Boot应用程序,作为独立的Java可执行文件。在相同的环境中,我们还可以在不同的端口(9045)上运行Weblogic 12C应用程序,并且可以通过浏览器访问它。假设我们在SpringBoot应用程序中有一个rest端点,即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能够绑定this并开始监听请求。即使
    netstat
    输出已更改,结果也是一样的(可能我在这里缺少一些逻辑理解?)

    所以我的问题是

  • 我还需要尝试哪些其他解决方案
  • 为什么Weblogic中部署的应用程序可以从浏览器访问,但Spring Boot应用程序无法访问?需要进行哪些其他设置/配置
  • 为什么来自Java应用程序(部署在Weblogic中)的请求获得成功,而不是来自浏览器?这是因为Java应用程序与Spring boot应用程序运行在相同的环境中,还是在出现此类请求时遗漏了一些检查 任何进一步了解这些网络事物的额外资源都将非常有用。谢谢。

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

    如果Windows计算机和REST服务之间存在防火墙,则在不转发端口的情况下,您将无法直接访问它

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

    假设:
    如果我理解您的问题,那么您有一个Linux实例,它承载一个Weblogic web应用程序和一个Spring Boot REST api。您可以从Windows计算机的远程连接直接在浏览器中访问Weblogic应用程序,但不能使用REST api。同一Linux实例上的Java应用程序可以访问RESTAPI。如果我理解正确,Windows计算机和Linux实例之间也有防火墙。

    Weblogic应用程序部署在9045上,这意味着路由器已转发此端口。此外,Java应用程序也部署在Weblogic中。我在url中包含了非标准端口。我认为目前唯一的解决方案是转发端口。@GanapathiBasimsetti我相信这是在限制条件或网络拓扑中获得所需功能的唯一解决方案。如果你愿意的话,请把我的答案记为答案。当心。