IDEA 远程调试服务器代码
我们在开发项目中,我们边把代码发布到测试环境,边在本地开发新的功能;有时候测试人员在测试时,发现了Bug,我们只有让运维人员将线上运行产生的日志文件发给我们排查。这样的一种排除Bug方式,效率极其低下。好在IDEA有一种远程调试的功能,可以完美解决这个需求。
远程调试的代码发布方式有两种(jar包部署 或者 war包部署)
1.JAR包部署
1.首先将项目打成jar包。注意:pom.xml 中 <packaging>jar</packaging>
1.1 jar包构建
1.2 生成jar包
jar 包生成结果如下:
2. jar 生成之后将jar包上传到服务器
3. idea 远程调试配置
注意:
1.address 调试端口号不能与项目配置的端口号相同,否则用jar启动会报端口冲突。
2.如果服务器没有开通该端口的对外访问权限,可以直接指定 address=0.0.0.0:8888 对外访问。
我项目端口号为:
server.port= 8899
#spring.devtools.restart.enabled=false
将上面生成配置信息先复制下来
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888
然后到服务器操作
进入上传jar包路径,并执行命令
项目启动成功结果如下:
4.用postman 进行接口调试
1.首先在需要监控的代码地方打上断点。
2.用postman进行接口请求
注意: 请求端口号为 项目的端口号(8899),不是调试端口号(8888)
3.请求成功,自动调入断点监控处。
二. WAR 包部署远程调试
1.将项目pom.xml 中packageing 改为 war. <packaging>war</packaging>
2.去除SpringBoot内嵌tomcat
@SpringBootApplication
public class Starter extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(Starter.class);
}
public static void main(String[] args) {
SpringApplication.run(Starter.class,args);
}
}
2.生成war 包
2.将war包上传到服务器tomcat webapps下
3.在catalina.sh 最上方加上远程调试的配置信息
CATALINA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888"
4.以catalina.sh方式启动tomcat.
./catalina.sh run
5.调试方式与上方相同
`