Spring Boot 远程Debug

远程Debug是一种排查远程应用出现问题的一种重要手段。本文展示在 IDEA 上进行Debug 远程应用的方式。
使用的开发工具为 IDEA,要使用的 collector.jar 包,已上传到远程服务器上,服务器为 CentOS7

一、IDEA 远程Debug配置

  • Host:应用部署的服务器IP地址,如果是云服务器,则需要填写公网IP
  • PortDebug监听的端口
  • -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000:由IDEA 自动生成的,用于启动应用时,配置的参数信息
  • collector:监听的项目
    Spring Boot 远程Debug_第1张图片

二、检查端口

检查 Debug 监听的端口是否已经开启,如果未开启,则需要开启。

$ firewall-cmd --query-port=8000/tcp  

no

# 如果返回no,则需要开启端口
$ firewall-cmd --add-port=8080/tcp --zone=public --permanent

success

$ firewall-cmd --reload

success

$ firewall-cmd --query-port=8000/tcp

yes

三、启动应用

本次演示远程Debug,是以 java -jar 的方式直接启动。
-jar 后面加上在 IDEA 中Debug要用到的参数文本。

$ java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 collector.jar

Listening for transport dt_socket at address: 8000
2021-01-05 21:03:20,078 main INFO Log4j appears to be running in a Servlet environment, but there's no log4j-web module available. If you want better web container support, please add the log4j-web JAR to your web archive or server lib directory.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.5.RELEASE)
...

启动后,第一行会展示 Listening for transport dt_socket at address: 8000,这就表示可以通过 8000 端口 Debug 应用了。

四、IDEA 启动

点击 Debug 按钮,当控制台出现 Connected to the target VM, address: 'xxx.xxx.xxx.xxx:8000', transport: 'socket' 时,表示远程 Debug 成功。
Spring Boot 远程Debug_第2张图片

你可能感兴趣的:(SpringBoot,debug)