我们在排查线上问题的时候,一般都是通过日志发现问题。但是有时候日志打印不全等一些问题会导致问题很难排查,然后重新加日志、发布。下面简单介绍一下如何远程Debug。
搭建一个简单的SpringBoot项目
/**
* @author ssk
* @date 2020/8/20
*/
@RestController
public class HelloController {
@RequestMapping("hello")
public String hello(){
return "hello spring boot";
}
}
项目里面就一个Controller,使用 mvn clean package打包成可执行jar文件。在target文件夹可以看到打包好的可执行jar文件。
将可执行程序上传到服务器。这里使用的是FinalShell连接工具,直接上jar拖拽到相应的文件夹下面即可。如果使用XShell需要先使用yum -y install lrzsz下载插件。
文件已经上传到服务器,接下来在IDEA配置。
-
Name:随便取一个名字。
-
Host:云主机的IP。
-
Port:调试端口,不是项目访问端口。
-
Use module classpath: 在多moudle项目中选择需要调试的moudle。
-
Command line arguments for remote JVM: 复制这个参数,在启动云服务中项目时添加这个JVM参数
在云服务中启动项目。
java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8081 -jar spring-mvc-1.0-SNAPSHOT.jar
启动本地,可以看到日志已经连接到远程服务。
验证,在浏览器输入访问路径,ip是远程服务器的端口,非本地端口。
可以看到已经进入到端点的位置了。