所謂的遠程調試就是服務端程序運行在一台遠程服務器上,我們可以在本地服務端的代碼(前提是本地的代碼必須和遠程服務器運行的代碼一致)中設置斷點,每當有請求到遠程服務器時時能夠在本地知道遠程服務端的此時的內部狀態。下面介紹一下Intellij IDEA下對Springboot類型的項目的遠程調試功能。
首先,打開Edit configurations,點擊+號,創建一個Remote應用。
填寫name,配置Host地址(遠程服務器地址)和端口(選一個未被占用的端口)。然后復制For JDK1.4.x下面的參數,示例配置的端口為5005:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
經過以上步驟,已經獲得了啟動遠程服務器的參數。在啟動springboot時默認使用java命令來啟動。
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 springboot-test-1.0-SNAPSHOT.jar
這樣服務端就監聽在5005端口了。可以通過以下命令來檢查是否監聽成功:
netstat -anp | grep 5005
通過以上步驟已經完成了服務器端參數的添加。下面啟動剛才配置的Remote服務,即test-spring。在啟動時候我們會發現此項啟動程序只有debug啟動模式。
啟動完成,對需要debug的代碼打上斷點,剩下的操作步驟就是訪問遠程服務器對應的業務請求,本地就會同步debug。其余的操作與本地debug相同