![](/img/trans.png)
[英]Unable to access Spring Boot application in Google App Engine after deployment
[英]Unable to access the remote Spring boot app from browser
已檢查參考問題:
我們在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將其綁定並開始偵聽請求。 即使netstat
輸出已更改,結果還是一樣的(也許我在這里缺少一些邏輯上的理解?)。
所以我的問題是
進一步了解這些網絡事物的任何其他資源將非常有幫助。 謝謝。
答:通過推斷,您似乎能夠在端口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實例之間也存在防火牆。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.