今天灰度环境出了点问题,直接看代码看不出所以然,报错也不够清晰,本地环境跑起来却又没有问题,大抵是灰度环境除了问题,需要远程排查一下,之前没有用过IDEA远程联调,现场学了一下,但是百度找到的教程基本都是要改文件,太麻烦了,所以自己搞了搞,可以实现在不修改服务器的配置文件的情况下使用IDEA远程调试。
首先准备一个IDEA,然后点这里:
点进去,修改几个位置:
如果没有特殊需求,只需要改这三个位置,IDEA的前期工作准备完毕,接下来看服务器侧,首先进入目标服务器,找到需要远程调的名字,然后输入:
ps -ef |grep xxxxxx
xxxx指代的是包的名字,比如我的是DCOM,那么就:
然后复制下来巨长的这一段,再加上一段文本:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=n
就变成了
/opt/app/jdk1.7.0_79/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,address=8788,server=y,suspend=n -Djava.util.logging.config.file=/opt/app/tomcat7-8080-xxxx/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /opt/app/tomcat7-8080-xxxx/bin/bootstrap.jar:/opt/app/tomcat7-8080-dcom2/bin/tomcat-juli.jar -Dcatalina.base=/opt/app/tomcat7-8080-xxxx -Dcatalina.home=/opt/app/tomcat7-8080-xxxx -Djava.io.tmpdir=/opt/app/tomcat7-8080-xxxx/temp org.apache.catalina.startup.Bootstrap start
接下来停掉现在的服务:
kill -9 [进程号]
比如我的就是:
然后把上面那段调试代码帖进去运行就可以看到服务启起来了,然后在IDEA中,debug启动:
看到这一段出现就是成功啦,打断点开始跑吧: