Java 无法从浏览器访问远程Spring启动应用程序
检查参考问题: 我们在192.168.22.125 Linux环境下的嵌入式tomcat服务器上部署了Spring Boot应用程序,作为独立的Java可执行文件。在相同的环境中,我们还可以在不同的端口(9045)上运行Weblogic 12C应用程序,并且可以通过浏览器访问它。假设我们在SpringBoot应用程序中有一个rest端点,即192.168.22.125:8888/jobs/uploads,我们可以从Java应用程序(也部署在Weblogic中)访问该端点,如下所示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中)访问该端点,如下所示
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
输出已更改,结果也是一样的(可能我在这里缺少一些逻辑理解?)
所以我的问题是
如果我理解您的问题,那么您有一个Linux实例,它承载一个Weblogic web应用程序和一个Spring Boot REST api。您可以从Windows计算机的远程连接直接在浏览器中访问Weblogic应用程序,但不能使用REST api。同一Linux实例上的Java应用程序可以访问RESTAPI。如果我理解正确,Windows计算机和Linux实例之间也有防火墙。Weblogic应用程序部署在9045上,这意味着路由器已转发此端口。此外,Java应用程序也部署在Weblogic中。我在url中包含了非标准端口。我认为目前唯一的解决方案是转发端口。@GanapathiBasimsetti我相信这是在限制条件或网络拓扑中获得所需功能的唯一解决方案。如果你愿意的话,请把我的答案记为答案。当心。