项目中,使用Jetty9作为web容器,在测试环境中发布了代码,发生了bug,追查起来还是比较麻烦的,于是就想到了远程调试。
进行远程调试分两步:
Jetty服务端配置
项目中使用了jetty9,启动参数都在start.ini文件里,修改此文件,加入远程调试参数:
--exec
# -Dorg.apache.jasper.compiler.disablejsr199=true
# -Dcom.sun.management.jmxremote
# -Dorg.eclipse.jetty.util.log.IGNORED=true
# -Dorg.eclipse.jetty.LEVEL=DEBUG
# -Dorg.eclipse.jetty.util.log.stderr.SOURCE=true
-server
-Xmx1536m
-Xms1536m
-Xmn576m
-Xss512K
-XX:PermSize=384m
-XX:MaxPermSize=384m
# =========以下为远程调试参数,8787为开启的端口
-Xdebug
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n
# =========以下其它参数省略
修改参数后重启服务。
IDEA配置
在IDEA里打开【运行/调试配置】窗口,新建一个Remote对话框(点击绿色+号,在下拉框里可以选择到),填写好主机地址,端口,选择好对应的项目即可(请见下图中的红框)。
一切准备就绪,在要调试的代码上打好断点,点击绿色甲壳虫(调试按钮)启动调试,控制台上会输出提示信息:
当服务器上的程序运行到和你的断点对应的代码时,IDEA上就能捕获到了。