Java-Note-Debug-使用Intellij对应用进行远程调试
2018-05-11
Java
- 环境配置
- 远程服务器
- 操作系统: centos 6.5
- tomcat版本: 8.0
- 远程服务器
步骤
- 打开端口8000(如果是云服务器还需打开8000端口的入站流量)
修改远程tomcat服务器配置: 使用catalina.sh代替startup.sh来启动
关闭远程tomcat:
1
2cd /var/tomcat/tomcat-8/bin
./shutdown.sh修改catalina.sh中的代码, 将
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16if [ "$1" = "jpda" ] ; then
if [ -z "$JPDA_TRANSPORT" ]; then
JPDA_TRANSPORT="dt_socket"
fi
if [ -z "$JPDA_ADDRESS" ]; then
JPDA_ADDRESS="localhost: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中的
JPDA_ADDRESS="localhost:8000"改为JPDA_ADDRESS="0.0.0.0:8000". 因为0.0.0.0表示所有的ip地址都可以访问,JPDA是指Java Platform Debugger Architecture, 是一种专门用于Java调试的架构: JPDA.- 重启tomcat:
./catalina.sh jpda start
- 修改本地Intellij配置
- 在
Edit Configuration中增加一个Remote, 将里面的Port改为8000, 保存然后点击debug按钮 - 当出现
Connected to the target VM, address: '140.143.29.99:8000', transport: 'socket'时表示远程连接调试端口成功, 可以开始调试
- 在
- 注意: 在步骤3的1中, 如果出现
Unable to open debugger port (x.x.x.x:8000): java.net.ConnectException "Connection refused: connect"说明调试端口为对客户端开放, 此时可以在远程服务器上使用netstat -ntlp查看开放的端口, 有可能没有开放8000端口或者开放的是127.0.0.1:8000而不是0.0.0.0:8000