簡體   English   中英

無法從瀏覽器訪問遠程Spring Boot應用程序

[英]Unable to access the remote Spring boot app from browser

已檢查參考問題:

  1. Tomcat服務器無法“外部”運行
  2. Spring Boot Service在本地工作,但不能在遠程工作
  3. 除了本地主機,如何配置與Spring集成的嵌入式Tomcat來偵聽IP地址的請求?

我們在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輸出已更改,結果還是一樣的(也許我在這里缺少一些邏輯上的理解?)。

所以我的問題是

  1. 我還需要嘗試其他哪些解決方案?
  2. 為什么可以通過瀏覽器訪問Weblogic中部署的應用程序,而不能訪問Spring Boot應用程序? 需要完成哪些其他設置/配置?
  3. 為什么從Java應用程序(在Weblogic中部署)發出的請求成功,但從瀏覽器發出的請求卻沒有成功? 是因為Java應用程序在與Spring Boot應用程序相同的環境中運行,還是因為出現此類請求而忽略了某些檢查?

進一步了解這些網絡事物的任何其他資源將非常有幫助。 謝謝。

答:通過推斷,您似乎能夠在端口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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM