Intellij IDEA远程调试

808 阅读2分钟

本文介绍了通过Intellij IDEA调试远程的Spring Boot项目

1. 在远程服务器部署Spring Boot服务

首先你得有个项目

图片

cd到项目target目录下, 将spring-boot-example-1.0.jar通过scp命令上传到远程服务器

scp spring-boot-example-1.0.jar root@168.12.11.39:/root/
root@172.12.11.39's password: 输入远程服务器密码

图片

通过SSH工具如 XShell 登录远程服务器,可以看到jar包已上传到远程服务器

图片

在远程服务器运行启动spring-boot服务

java agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar  spring-boot-example-1.0.jar

图片

开启远程服务器端口

#若5005端口开放,需要配置开放端口
#临时打开5005/TCP端口
firewall-cmd --add-port=5005/tcp

2. 配置本地IDE

主窗口菜单 Run / Edit Configurations

图片

点击工具栏上的+ ,在下拉菜单中选择Remote

图片

Remote的属性说明如下

  • Name:配置Remote Debug的名称,可以是任意名称;

  • Host:配置服务器的域名或ip地址,Port 使用默认值5005,也可以是其他端口;

  • Command line arguments for remote JVM:配置Debug远程服务的命令行启动参数,本地在Debug时会监听远程服务的对应端口并运行调试环境,具体的参数说明如下:

  • -Xdebug:JVM在DEBUG模式下工作;

  • -Xrunjdwp:JVM使用(java debug wire protocol)来运行调试环境;

  • transport:监听Socket端口连接方式,常用的dt_socket表示使用socket连接;

  • server:=y表示当前是调试服务端,=n表示当前是调试客户端;

  • suspend:=n表示启动时不中断;

  • address:表示本地监听的地址和端口

我们只需要配置Host、Port(Port来自步骤4 java-jar 中的address=5005)

3. 连接远程服务

点击 绿色的小爬虫 启动调试模式。出现如下窗口,说明已连接上远程服务

图片

4. 设置断点,开始调试

在本地代码上打个断点

图片

在浏览器或Postman访问远程服务的URL地址,这里是 http:// 172.12.11.39:8080/test 。进入此断点,说明远程调试成功啦~

图片

注意:用于远程调试的代码必须和远程部署的代码完成一致,否则在本地打断点无效~