2018.11.01
前言
Tomcat的遠程調試模式是個常用且好用的功能,一旦項目部署到遠程服務器上時(比如sit環境),就可以通過遠程調試模式打斷點進行debug。本文翻譯自一技術博客1。
方法
設置JVM啓動命令參數就可以爲Tomcat開啓遠程調試模式,可以通過JPDA_OPTS
、CATALINA_OPTS
或JAVA_OPTS
來設置。但一般不推薦設置JAVA_OPTS
,因爲它會影響到JVM裏的所有應用,而CATALINA_OPTS
僅對Tomcat有效。
方法一:JPDA_OPTS
在CATALINA_HOME/bin目錄下新建一個setenv.sh(Linux)或setenv.bat(Windows),添加如下內容:
# Linux
export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
# Windows
set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket, address=1043, server=y, suspend=n"
一般建議採用setenv.*文件來設置額外的配置,而不是直接寫進catalina.*中,而setenv.*文件會被Tomat自動讀取。啓動Tomcat:
<CATALINA_HOME>/bin/catalina.sh jpda start
方法二(建議):CATALINA_OPTS
類似地,新建setenv.*文件:
# Linux
export CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
# Windows
set CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n"
Old-fashioned方法
下面也是常見的參數配置,但它適用於Java 5.0之前的版本;上述配置則適用於Java 5.0及之後的版本。所以不推薦使用。
# 舊的配置方法
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=1043, suspend=n