Spring Boot支持以远程调试模式运行一个打包的应用,即访问远程应用可以像本地调试一样,这是一把利器啊,这比看日志看直观.
当然它要求线上的jar代码和本地代码一样.
以demo.jar可执行文件为例,要调试远程应用分2步.1,以debug模式运行应用,2,用idea连接应用.
如果服务器是阿里云,要注意安全组端口限制
以debug模式运行应用
创建startDemo.sh文件:
java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081 -jar demo.jar
address是服务器向外暴露的连接端口,用于本地连接应用.运行成功结果如下:
配置本地服务
点开Edit Configuration
打开项目配置,然后按上图新建一个Remote
连接远程服务,右边按IP和连接端口(就是sh文件里address端口),复制上图中参数.然后切换到SpringBoot选项,如下图
将上面的参数粘贴到Vm options
里.至些配置完成.
启动
当然只能以debug模式启动,其它按钮都灰色
控制台看到Connected to the target VM, address: '116.62.184.190:8081', transport: 'socket'
表示连接成功.
测试
访问
http://116.62.184.190:8080/bss/testProperties
断点果然进入,如下图