IDEA連接遠程環境進行本地debug

說明

實際開發過程中,由於數據庫以及上下游的依賴,可能直接啓動本地項目進行debug並不現實。這時候就需要本地IDEA連接到遠程啓動的項目(如預發環境)做debug。這裏簡單記錄一下IDEA連接到遠程項目,然後在本地進行debug的過程

IDEA配置

第一步:點擊【Edit Configurations】-【Add New Configuration】-【Remote】
在這裏插入圖片描述
第二步:編輯Remote配置,【Name】可以自定義,【Host】填寫遠程項目啓動的IP地址,【Port】可以自定義端口,也可以使用默認的5005

第三步:將【Command line arguments for remote JVM:】中的內容拷貝下來,在接下來重啓遠程環境項目的過程中使用。然後保存配置。
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
在這裏插入圖片描述

重啓遠程項目

第一步:登錄到遠程項目所在的主機
第二步:重啓遠程環境上的項目
以jar項目爲例,使用如下命令重啓項目:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar walle-0.0.1-SNAPSHOT.jar

本地debug

遠程環境上的項目重啓完成之後,即可以進行本地debug。【debug configuration】選擇剛纔配置的【remote】,然後點擊【debug】,【console】中出現“Connected to the target VM, address: ‘192.168.1.103:5005’, transport: ‘socket’”即說明連接成功,本地可以進行正常的debug了
在這裏插入圖片描述
說明:進行debug的時候,日誌等輸出還是會輸出到遠程環境,但是在【Debugger】窗口中,可以查看並修改變量值
在這裏插入圖片描述

可能遇到的問題

實際在使用的過程中,可能啓動IDEA調測時,遇到如下報錯:
port 5005 (tcp) failed: Connection refused

例如,我的應用部署在阿里雲上,但是本地鏈接進行調試時,用上文中的命令啓動應用之後,在IDEA啓動調測就報這個錯誤。後來網上查找資料,發現是監聽端口5005只在雲上的127.0.0.1,所以要想辦法5005端口暴露給公網ip。我的解決辦法是,啓動命令增加ip如下:

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 -jar walle-0.0.1-SNAPSHOT.jar

查看端口監聽情況如下就可以了:
在這裏插入圖片描述
然後再啓動IDEA進行調測就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章