手把手教你本地IDEA调试服务器代码

4,744 阅读1分钟

前言

有的时候,有一些业务在本地跑的好好的,打包部署到线上就出问题,这个时候远程debug就有效了

大致流程是这样的:

image.png

搭建

1.准备基本代码

一个简单的web api

image.png

2.配置IDEA远程调试

和普通的debug不同,这里需要配置一下

image.png

image.png

image.png

记住这行指令:

image.png

3.部署

不管是容器部署,还是直接jdk部署,部署的时候加上一条命令:

java -XDebug 上面的第二步的命令 -jar demo

我这里是用容器部署的

image.png

Dockerfile

FROM azul/zulu-openjdk-debian:11-jre

COPY *.jar /app.jar

CMD ["--server.port=8080"]

EXPOSE 8080

ENTRYPOINT ["java", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8889","-jar","/app.jar"]

deploy.sh

docker kill demo
docker rm demo
docker rmi demo

docker build -t demo .
docker run -d -p 8080:8080 --name demo demo

docker images| grep none | awk '{print $3}' | xargs docker rmi # 清理无用镜像

debug

注意这里的第一行,有监听端口的信息展现 image.png

可以看到成功的debug了

image.png

注意点

Q:调试时其他人会不会卡住?

自己在远程调试的时候,别人访问的话也会卡住,这就会造成请求堆积,非常恐怖

并且写这篇博客的时候就有朋友和我说这个远程调试的话,端口暴露容易被小黑子们拉去当矿机,所以测试完成之后建议就把端口保护起来

部署的时候用到docker和nginx的话会有其他注意点,这里做测试就没这么严谨