簡體   English   中英

Bluemix CF Java buildpack應用程序的遠程調試

[英]Remote debugging of Bluemix CF Java buildpack application

我有一個作為Cloud Foundry Java buildpack部署在IBM Bluemix上的獨立Java應用程序。

是否可以在Eclipse中對其執行遠程調試?我只能找到用於Java Liberty buildpack應用程序的遠程調試的文檔。

在另一個答案中提到的套接字偵聽方式當然很方便,但是希望您將一個公共IP分配給調試機(或者必須在路由器上配置一些端口轉發)。 這可能並不總是可能的。

因此,另一種方法是在Java應用程序上啟用調試,並使用ssh端口轉發連接到應用程序實例。 以下是步驟

  1. 通過將環境變量JBP_CONFIG_DEBUG設置為值{enabled: true}並重新啟動應用程序來啟用Java調試。
  2. 通過JDWP為調試框架設置SSH隧道

    cf ssh -N -T -L 8000:localhost:8000 <APP_NAME>

  3. 打開ssh隧道后,您可以在localhost:8000上使用來自eclipse的套接字附加調試類型

cf ssh之前的先決條件: cf apicf logincf target

Java buildpack文檔中有一些說明, 網址https://docs.cloudfoundry.org/buildpacks/java/java-tips.html#debugging

  1. 在Eclipse中打開您的項目。
  2. 右鍵單擊項目,轉到“調試為”,然后選擇“調試配置”。
  3. 創建一個新的遠程Java應用程序。
  4. 確保選擇了您的項目,從“連接類型”下拉列表中選擇“標准(偵聽套接字)”並設置端口。 如果您正在運行防火牆,請確保此端口是打開的。
  5. 單擊調試。

調試器現在應該正在運行。 如果切換到“調試”透視圖,則應在“調試”面板中看到您的應用程序,並且應顯示“ Waiting for vm to connect at port

接下來,使用以下說明將應用程序推送到Cloud Foundry並指示Cloud Foundry連接到在本地計算機上運行的調試器:

  1. 編輯您的manifest.yml文件。 將實例計數設置為1。如果將此值設置為大於1,則多個應用程序嘗試連接到調試器。
  2. 同樣在manifest.yml中,添加env部分並創建一個名為JAVA_OPTS的變量。
  3. 將遠程調試器配置添加到JAVA_OPTS變量: -agentlib:jdwp=transport=dt_socket,address=YOUR-IP-ADDRESS:YOUR-PORT
  4. 保存manifest.yml文件。
  5. 運行cf push。

完成后,您應該看到您的應用程序已啟動,並且現在已連接到在IDE中運行的調試器。 現在,您可以添加斷點並查詢應用程序,就像在本地運行該應用程序一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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