首页 > 编程知识 正文

tomcat远程debug,idea远程断点

时间:2023-05-05 00:31:09 阅读:130135 作者:2195

项目联机后,如果日志打印不明确或业务逻辑复杂,则可能无法确定特定的错误原因,因此可以在IDEA远程代理上进行调试。

在线的代码必须与本地的匹配! 扎实的毛衣/p

2.1.4.release (org.spring framework.boot ) jdk1.8Apache Maven 3.5.01,创建准备远程调试的Demo并注意生成项目的配置? XML版本=' 1.0 '编码=' utf-8 '? project xmlns=' http://maven.Apache.org/POM/4.0.0 ' xmlns : xsi=' http://www.w3.org/2001/XML方案ins ttins maven-4.0.0.xsd ' model版本4.0.0/modelversionparentgroupidors groupidartifactidspring-boot-starter-parenend --- lookupparentfromrepository---parentgroupidcom.remote.test/groupidartifactidremote _ test/artifactidversion0. namedescriptiondemoprojectforspringboot/descriptionpropertiesjava.version 1.8/Java.version/propertiesdependenciesdependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter/artifact id/ependencydependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-test/artifactidscopetest ependencydependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-starter-web/aarad depend ended groupidartifactidjunit-Jupiter-API/artifactidversionrelease/versionscopetest/scope/dependency/ependenciesbuildpluginsplugingroupidorg.Apache.maven.plugins/groupidartifactidmaven-shade-plugin/artifactidverssins versiondependenciesdependencygroupidorg.spring framework.boot/groupidartifactidspring-boot-maven-maven

ciesWithProvidedScope>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><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.handlers</resource></transformer><transformer implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer"><resource>META-INF/spring.factories</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.schemas</resource></transformer><transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><!--根据项目的全名指定启动类--> <mainClass>com.remote.test.remote_test.RemoteTestApplication</mainClass></transformer></transformers></configuration></execution></executions></plugin></plugins></build></project> package com.remote.test.remote_test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import java.util.HashMap;import java.util.Map;@RestController@RequestMapping("remote/test")public class UserController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); @PostMapping("selectByUserId") public String selectUserInfo(@RequestParam("userId") String userId) { try { Map<String,Object> userInfo = new HashMap<>(); userInfo.put("userId",userId); userInfo.put("age",23); userInfo.put("name","yanshao"); userInfo.put("address","shanghai"); logger.info("Query user information by user ID. userInfo: {}",userInfo.toString()); return this.success(userInfo); } catch (Exception e) { logger.error("Query user information by user ID. userId:{} ", userId, e); return this.fail(); } } private String success(Object data){ Map<String,Object> res = new HashMap<>(); res.put("code",0); res.put("desc","success"); res.put("data",data); return res.toString(); } private String fail(){ Map<String,Object> res = new HashMap<>(); res.put("code",1); res.put("desc","fail"); return res.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.jarERROR: transport error 202: connect failed: Connection refusedERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。