已检查参考问题:
我们在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 wget
中使用powershell
来访问它们。参考问题1,我们发现浏览器存在问题。参考问题2,解决方案可能是将端口添加到路由器配置中(如果没有其他作用,这将是最后的选择)。当我在连接到8888端口的腻子上尝试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将其绑定并开始侦听请求。即使netstat
的输出已更改,结果还是一样的(也许我在这里缺少一些逻辑上的理解?)。
我的问题是
任何进一步了解这些网络事物的资源都将非常有帮助。谢谢。
答案 0 :(得分:1)
答案: 通过推断,您似乎能够在端口80上访问Weblogic应用程序,因为您的路由器已转发了端口80。如果在同一Linux实例(即localhost)上运行的Java应用程序可以访问REST api,那么您似乎很清楚需要在防火墙设置中转发REST api的端口-在您的示例中为端口8888。
如果Windows计算机与REST服务之间存在防火墙,则在不转发端口的情况下将无法直接访问它。
此外,请确保您在网址中包含非标准端口,如下所示:
http://192.168.22.125:8888/jobs/uploads
假设: 如果我理解您的问题,则您有一个Linux实例,该实例托管Weblogic Web应用程序和Spring Boot REST api。您可以通过Windows计算机的远程连接直接在浏览器中访问Weblogic应用程序,但不能通过REST api访问。同一Linux实例上的Java应用程序可以访问REST api。如果我理解正确,Windows机器和Linux实例之间还会有防火墙。