项目中,使用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上就能捕获到了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐