IDEA Debug 调试远程服务
前言
如果正产环境的项目(或远程服务器项目)出现了难以判断的 Bug,想要像本地一样进行 Debug 模拟该如何做?
IDEA 提供了一个远程项目调试的方法,首先我们必须保证本地的项目与远程服务代码完全一致(可以通过 git 提交记录来定位远程服务代码),再经过下面几步简单配置即可完成。
远程直接 JAR 启动服务
- IDEA 配置远程服务信息
注意:这里提供的端口不是服务启动的端口,表示提供一个该服务用于与 IDEA 建立 Socket 连接的额外端口
- 启动远程服务
## 添加上刚才idea配置的参数
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5505 xxxxx.jar
- IDEA 建立连接
看到控制台如下信息则连接建立成功
远程 docker 容器服务
- 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
- docker 容器启动时额外增加一个端口映射
# 一个 -p是服务本身的端口映射,一个是远程调试配置的端口映射
docker run -it -d -p 9090:9090 -p 8271:9092 <镜像名/id> /bin/bash
- 启动建立连接即可
之后就照常打断掉调试即可,远程服务的信息会以 Socket 连接发送信息供我们本地观察。
注意
远程服务代码和本地代码必须完全一致,否则达不到目的结果。
|