IDEA Debug 调试远程服务

IDEA Debug 调试远程服务

前言

如果正产环境的项目(或远程服务器项目)出现了难以判断的 Bug,想要像本地一样进行 Debug 模拟该如何做?

IDEA 提供了一个远程项目调试的方法,首先我们必须保证本地的项目与远程服务代码完全一致(可以通过 git 提交记录来定位远程服务代码),再经过下面几步简单配置即可完成。

远程直接 JAR 启动服务

  1. IDEA 配置远程服务信息

image-20220624192218113

image-20220624192307889

注意:这里提供的端口不是服务启动的端口,表示提供一个该服务用于与 IDEA 建立 Socket 连接的额外端口

image-20220624192750637

  1. 启动远程服务
## 添加上刚才idea配置的参数
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5505 xxxxx.jar
  1. IDEA 建立连接

image-20220624195851716

看到控制台如下信息则连接建立成功

image-20220624195747807

远程 docker 容器服务

  1. IDEA 操作步骤保持不变
    2. 构建镜像添加配置的额外启动参数,编辑 DockerFile 文件
# 引入 java8 运行环境
FROM openjdk:8-jre-alpine
# 将指定jar包放入容器位置
ADD stomp-websocket.jar /home/java/
# 指定容器工作目录
WORKDIR /
# 指定暴露端口
EXPOSE 8071
# 容器启动的命令
ENTRYPOINT java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9090 -jar /home/java/stomp-websocket.jar
  1. docker 容器启动时额外增加一个端口映射
# 一个 -p是服务本身的端口映射,一个是远程调试配置的端口映射
docker run -it -d -p 9090:9090 -p 8271:9092 <镜像名/id> /bin/bash
  1. 启动建立连接即可

之后就照常打断掉调试即可,远程服务的信息会以 Socket 连接发送信息供我们本地观察。

注意

远程服务代码和本地代码必须完全一致,否则达不到目的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值