服務器端 jar 包啟動
調試端口 5005
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 app-name.jar --spring.profiles.active=dev
intellij idea
新建 remote 啟動配置
遠程啟動后, 啟動 idea 此配置即可
以下引用
http://www.spring4all.com/article/512
簡介
本篇博客介紹一下在Intellij IDEA下對Springboot類型的項目的遠程調試功能。所謂的遠程調試就是服務端程序運行在一臺遠程服務器上舰讹,我們可以在本地服務端的代碼(前提是本地的代碼必須和遠程服務器運行的代碼一致)中設置斷點呻待,每當有請求到遠程服務器時時能夠在本地知道遠程服務端的此時的內部狀態(tài)。
方法
首先熔酷,打開Edit configurations爽室,點擊+號温自,創(chuàng)建一個Remote應用。
填寫name知给,配置Host地址(遠程服務器地址)和端口(選一個未被占用的端口)瓤帚。然后復制For JDK1.4.x下面的參數(shù),示例配置的端口為5005
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
經過以上步驟涩赢,已經獲得了啟動遠程服務器的參數(shù)戈次。在啟動springboot時默認使用java命令來啟動。
比如筒扒,示例項目啟動命令為:
$ java -jar remotedebug-0.0.1-SNAPSHOT.jar
那么此時在啟動命令上添加上面獲得的參數(shù)(非springbboot項目怯邪,就是把多的那段配置添加到相應的環(huán)境變量即可):
$ java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 remotedebug-0.0.1-SNAPSHOT.jar
這樣服務端就監(jiān)聽在5005端口了』ǘ眨可以通過以下命令來檢查是否監(jiān)聽成功:
netstat -anp | grep 5005
docker
如果應用是跑在容器中的悬秉,只需要修改Dockerfile即可澄步。例子如下
FROM java:8
COPY target/agents.jar /app.jar
EXPOSE 8080
EXPOSE 5005
ENTRYPOINT ["java","-jar" ,"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-Dspring.profiles.active=sit","/app.jar"]
通過以上步驟已經完成了服務器端參數(shù)的添加。下面啟動剛才配置的Remote服務和泌。在啟動時候我們會發(fā)現(xiàn)此項啟動程序只有debug啟動模式村缸。
啟動完成,對需要debug的代碼打上斷點武氓,剩下的操作步驟就是訪問遠程服務器對應的業(yè)務請求王凑,本地就會同步debug。其余的操作與本地debug相同聋丝,此處就不再贅述了。