如何在springboot中使用IDEA远程连接Debug(debug,idea,springboot,编程语言)

时间:2024-05-01 21:19:00 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

1、先创建一个准备远程调试的Demo,注意构建项目的配置

<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/><!--lookupparentfromrepository--> </parent> <groupId>com.remote.test</groupId> <artifactId>remote_test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>remote_test</name> <description>DemoprojectforSpringBoot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>RELEASE</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.2</version> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.1.4.RELEASE</version> </dependency> </dependencies> <configuration> <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope> <createDependencyReducedPom>false</createDependencyReducedPom> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <finalName>${project.artifactId}-${project.version}-all</finalName> <transformers> <transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.handlers</resource> </transformer> <transformerimplementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer"> <resource>META-INF/spring.factories</resource> </transformer> <transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> <resource>META-INF/spring.schemas</resource> </transformer> <transformerimplementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> <transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <!--根据项目的全名指定启动类--><mainClass>com.remote.test.remote_test.RemoteTestApplication</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
packagecom.remote.test.remote_test;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importjava.util.HashMap;importjava.util.Map;@RestController@RequestMapping("remote/test")publicclassUserController{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(UserController.class);@PostMapping("selectByUserId")publicStringselectUserInfo(@RequestParam("userId")StringuserId){try{Map<String,Object>userInfo=newHashMap<>();userInfo.put("userId",userId);userInfo.put("age",23);userInfo.put("name","yanshao");userInfo.put("address","shanghai");logger.info("QueryuserinformationbyuserID.userInfo:{}",userInfo.toString());returnthis.success(userInfo);}catch(Exceptione){logger.error("QueryuserinformationbyuserID.userId:{}",userId,e);returnthis.fail();}}privateStringsuccess(Objectdata){Map<String,Object>res=newHashMap<>();res.put("code",0);res.put("desc","success");res.put("data",data);returnres.toString();}privateStringfail(){Map<String,Object>res=newHashMap<>();res.put("code",1);res.put("desc","fail");returnres.toString();}}

2、打包

输入:mvn clean package,(大概需要等几分钟),最好在构建之前指定本地repository,就不需要重新下载jar包了。

如何在springboot中使用IDEA远程连接Debug

如何在springboot中使用IDEA远程连接Debug

3、在IDEA配置远程Debug

指定socket port = 8081,指定准备debug的模块

如何在springboot中使用IDEA远程连接Debug

4、在终端启动刚才打好的jar包

a. 先在IDEA启动debug

如何在springboot中使用IDEA远程连接Debug

b. 然后在终端输入命令:java -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:8081 -jar remote_test-0.0.1-SNAPSHOT-all.jar

如何在springboot中使用IDEA远程连接Debug

5、测试

在准备请求的接口上标记断点

如何在springboot中使用IDEA远程连接Debug

如何在springboot中使用IDEA远程连接Debug

如何在springboot中使用IDEA远程连接Debug

注意:必须先在IDEA启动Debug,然后再启动项目

➜ Desktop java -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:8081 -jar remote_test-0.0.1-SNAPSHOT-all.jar

ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何在springboot中使用IDEA远程连接Debug的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎么在SpringBoot中整合ActiveMQ下一篇:

28 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18