如何在springboot中使用IDEA远程连接Debug
导读:本文共4898.5字符,通常情况下阅读需要16分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 1、先创建一个准备远程调试的Demo,注意构建项目的配置<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3... ...
目录
(为您整理了一些要点),点击可以直达。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包了。
3、在IDEA配置远程Debug
指定socket port = 8081,指定准备debug的模块
4、在终端启动刚才打好的jar包
a. 先在IDEA启动debug
b. 然后在终端输入命令:java -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:8081 -jar remote_test-0.0.1-SNAPSHOT-all.jar
5、测试
在准备请求的接口上标记断点
注意:必须先在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的详细内容,希望对您有所帮助,信息来源于网络。