⽬录
1.远程DEBUG的必要性2,IDEA构建SpringBoot测试Demo3,测试Demo项⽬配置⽀持远程调试4,IDEA打包jar5,启动jar并且带启动参数⽀持远程调试6,IDEA远程DEBUG配置1,启动项下拉,选择 Edit Configurations...编辑配置2,点击+,选择Remote,添加远程DEBUG配置3,添加远程DEBUG配置项,Host和Port,配置后,点击Apply和OK按钮7,IDEA远程DEBUG测试1,打测试断点2,选择远程debug启动项,然后点击测试调试按钮启动;3,postman测试4,成功进⼊断点5,启动的jar包打印信息,测试OK8,eclipse远程DEBUG实现1,右击项⽬ -> Debug As -> Debug Configurations…2,找到 Remote Java Application 然后右击 New3,配置Host和Port,点击Debug按钮,即可实现远程DEBUG9,打war包⽅式配置远程DEBUG总结1.远程DEBUG的必要性
由于部署环境的差异性,相信很多朋友都碰到过开发环境正常测试过的功能在测试环境甚⾄⽣产环境下出现bug的情况。⼀般情况下,⽣产环境可以采取的⼿段⽐较单⼀,即通过⽇志的⽅式获取运⾏中的环境上下⽂,分析⽇志⽂件并尝试重现bug。这会带来的问题还是不少的,⾸先,⽇志的分析是⼀项⽐较耗时的⼯作;其次,现有的⽇志记录不⼀定能反映出问题,你可能需要多次重复这个过程(分析⽇志->猜测问题->加⽇志->部署->获取⽇志)来慢慢逼近问题。倘若是测试环境,我们还多了⼀项可供选择的⼿段——远程调试——将程序在测试环境中以debug模式启动,在本机使⽤IDEA在⼯程中设置断点进⾏调试。
2,IDEA构建SpringBoot测试Demo
新建SpringBoot测试项⽬remote-debug,只需要web依赖⽀持即可;版本选⽤2.2.6.RELEASE(注意,别⽤2.5.1版本,有坑,亲测)pom.xml:
application.yml:
server: port: 80 servlet:
context-path: / tomcat:
uri-encoding: utf-8
简单搞个TestController,提供⼀个Rest接⼝
package com.java1234.controller;
import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;/**
* @author java1234_⼩锋 * @site www.java1234.com * @company Java知识分享⽹ * @create 2021-06-12 15:37 */
@RestController
public class TestController {
@PostMapping(\"/test\")
public String test(Integer id,String name){ System.out.println(\"id=\"+id);
System.out.println(\"name=\"+name); if(id>0){
return \"success \"+name; }else{
return \"fail\"; } }}
我们启动项⽬,⽤postman测试下:
3,测试Demo项⽬配置⽀持远程调试
pom.xml⾥配置jvmArguments参数 -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n:
加了此配置后,打包后的项⽬发布服务器,可⽀持远程DEBUG;具体参数详解:
-Xdebug 通知JVM⼯作在DEBUG模式下;
-Xrunjdwp 通知JVM使⽤(Java debug wire protocol)运⾏调试环境。该参数同时包含了⼀系列的调试选项;**transport **指定了调试数据的传送⽅式,dt_socket是指⽤SOCKET模式,另有dt_shmem指⽤共享内存⽅式,其中,dt_shmem只适⽤于Windows平台;
address 调试服务器的端⼝号,客户端⽤来连接服务器的端⼝号;server=y/n VM 是否需要作为调试服务器执⾏;
suspend=y/n 是否在调试客户端建⽴连接之后启动 VM;
4,IDEA打包jar
我们打包jar包;
右侧Maven⼯具,双击 package打包⼯具;
⼀般打包跳过test,可以点击箭头所指闪电图标,这样打包速度会快很多;
打包后,在target⽬录下,会⽣成⼀个jar包;我们把它复制出来即可;
5,启动jar并且带启动参数⽀持远程调试
我们把remote-debug-v1.0.jar放D盘根⽬录;我们启动jar,并且⽀持远程DEBUG;
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-debug-v1.0.jar
启动OK,监听socket 5005端⼝
6,IDEA远程DEBUG配置
IDEA要进⾏远程DEBUG,需要进⾏配置;
1,启动项下拉,选择 Edit Configurations...编辑配置
2,点击+,选择Remote,添加远程DEBUG配置
3,添加远程DEBUG配置项,Host和Port,配置后,点击Apply和OK按钮
7,IDEA远程DEBUG测试
1,打测试断点
我们直接在TestController类⾥的test⽅法上打点断;
2,选择远程debug启动项,然后点击测试调试按钮启动;
3,postman测试
4,成功进⼊断点
我们⾛完断点;
5,启动的jar包打印信息,测试OK
8,eclipse远程DEBUG实现
1,右击项⽬ -> Debug As -> Debug Configurations…
2,找到 Remote Java Application 然后右击 New
3,配置Host和Port,点击Debug按钮,即可实现远程DEBUG
9,打war包⽅式配置远程DEBUG
如果打的是war包,需要两个步骤:
1.将 web 应⽤部署到 Tomcat 的 webapp ⽬录下
2.修改 Tomcat/bin/startup.bat ⽂件,在最前⾯加上如下代码:
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
总结
本篇⽂章就到这⾥了,希望能给你带来帮助,也希望您能够多多关注的更多内容!
因篇幅问题不能全部显示,请点此查看更多更全内容