本文介绍了通过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 。进入此断点,说明远程调试成功啦~
注意:用于远程调试的代码必须和远程部署的代码完成一致,否则在本地打断点无效~