遇到运行态的bug错误,本地的话可以debug,远程的话通常可以通过日志等来观察和测试运行态中的环境。
但是如果程序运行在远程环境上,根本无法修改程序、又或者想减少相关日志代码频繁修改等等情况?
可以尝试JPDA.
启动tomcat的jpda支持
默认情况下tomcat的启动命令是:
./catalina.sh start
该命令是没有启动我们的jpda服务。
tomcat提供了集成了Jpda服务,只需要:
./catalina.sh jpda start
这样就启动了我们服务器jvm的jpda服务了。
tomcat默认的jpda服务的端口是8000,这个时候我们使用命令看下 netstat -an,看看8000端口是不是已经启动了。
查看./catalina.sh文件可以看到Tomcat默认的配置,如果想修改端口的话,
只需要将JPDA_ADDRESS修改为没使用的一个端口即可。
if [ "$1" = "jpda" ] ; then
if [ -z "$JPDA_TRANSPORT" ]; then
JPDA_TRANSPORT="dt_socket"
fi
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="8000"
fi
if [ -z "$JPDA_SUSPEND" ]; then
JPDA_SUSPEND="n"
fi
if [ -z "$JPDA_OPTS" ]; then
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
fi
CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
shift
fi
IDEA中配置远程调试
1、在IDEA的“Edit Configuration” 中选择 + "Add New Configuration"。
2、在弹出的列表中选择“Remote” ,弹出一个需要填写参数的对话框。
3、在弹出的框中,定义名称,选择要断点调试的项目,transport选择socket。debugger mode选择attach。
host填写远程tomcat地址,端口选择上面JPDA_ADDRESS配置的端口。
4、像普通项目一样debug这个Remote项目即可,可以在项目上进行类似本地项目的debug了。
原文链接:Tomcat开启Jpda支持(远程调试),转载请注明来源!