idea + tomcat + linux 远程debug
1. 环境描述:
①Tomcat Version:Apache Tomcat/7.0.77
②JVM Version:1.8.0_191-b12
③OS Name:Linux
④OS Version:2.6.32-431.el6.x86_64
⑤:idea Version:ULTIMATE 2018.2
2. 原因:测试环境有问题,打log也没有找到问题,就想着远程debug一下,网上idea远程debug tomcat的文章很多,但是可能我idea版本太新了,导致看了好多篇文章都不能debug,然后拼拼凑凑几篇文章才debug上,记录一下给大家参考一下,有问题可以指出。
3. tomcat 中的配置
catalina.sh修改
①找到“JPDA_ADDRESS”,可把默认的“8000”修改为没有被占用的端口号,比如我的修改为“9999”
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="9999"
fi
②找到“Execute The Requested Command”这行注释,在下面加上如下配置
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.128.134.106
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999
"
“10.128.134.106”为远程服务器的地址,“1099”设置为JMX port的端口号,“9999” 为远程调试的端口,跟#①的“JPDA_ADDRESS”是一样的。
ssl,false表示不使用ssl链接
authenticate,false表示不使用监控,即不需要用户名和密码。参考文章
注意的点:
以上端口可以随意改动,但是必要的是后续的设置必须保持一致,并且务必保证端口没有被占用,这些设置的端口在防火墙中是开放状态;
“-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999”这个设置有的地方是这样“-agentlib:jdwp=transport=dt_socket,address=15833,suspend=n,server=y”,我配置了没有生效,看有一篇文章是Xdebug,所以改成了Xdebug
重启一下tomcat
4. 配置idea
①新建远程tomcat
参考文章:
https://www.cnblogs.com/qiumingcheng/p/6659019.html
https://www.cnblogs.com/jecyhw/p/4359328.html
https://www.cnblogs.com/qnight/p/8983145.html