有时候本地代码没问题但在线上运行会报错,这时候可以使用idea的remote功能调试线上jar包
步骤1
步骤2:新建remote
步骤3:配置服务器ip和端口 并复制生成的JVM参数供之后使用
步骤4:打jar包,并将生成的jar包放到服务器(必须保证本地代码和线上一致)
步骤5: 服务器开放端口。命令如下:
firewall-cmd --add-port=端口号/tcp --permanent
重置防火墙
firewall-cmd --reload
若是阿里云、腾讯云等服务器也需要添加相关安全组
步骤6:启动jar包,无论你的java 命令后面的参数启动有多长 紧跟的java后面加一空格并添加刚才复制的jvm启动命令
# 开启远程调试 address为调试端口
nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar ./$JAR_NAME > ./test.log 2>&1 &
步骤7:点击debug模式启动
此时在线上调用功能,如果本地代码中有断点就会进入到本地的断点中。代码中的各种log会在线上日志中打印并不会打印在本地。
本文参考于:https://www.cnblogs.com/wscw/p/16976694.html