idea springboot远程debug的操作方法
作者:Jyannis 发布时间:2022-11-01 00:04:31
Remote Debug 综述
当我们的后台项目部署到服务器上时,由于环境和本地不同,有时候也会有一些奇奇怪怪的问题出现。只依赖服务器上的日志来诊断可能太不灵活,这时就需要我们进行远程调试。
在开始我们的步骤前,先确认一点:
我们现在是希望能够在本地远程调试服务器上的程序,也就是说:
本地 = 调试者
服务器 = 被调试者
而且还有一点我们需要注意,就是在调试远程服务器上的代码时,一定要保证 远程服务器 上的代码和 本地 代码一致,不然就失去debug效果了。
First Step 本地配置远程服务 在本地,打开我们的idea,在运行窗口上点击 Edit Configurations…
会看到新跳出来一个窗口,点击左上角 ‘+' 号,选择 Remote
填入相关信息
这样就算是做好了我们本地的远程debug配置。
这里补充一个小tip:
这里设置的8002端口是监听端口,读者也可以修改为自己想要的端口。
但是要注意,监听端口和启动端口必须不同。
也就是服务器上项目启动的端口,要和你现在设置的这个监听端口不一样。
先别急着把这个界面关掉,我们把这一段内容复制下来:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8002
Second Step 服务器以远程监听方式启动
打开我们的Xshell(或其他SSH工具)连接上我们的远程服务器。
启动时,我们将过去的java -jar xxx.jar
命令给替换成:
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8002 xxx.jar
但如果我们的远程服务器是阿里云、腾讯云等云服务商的云服务器,我们可能需要像下面这样改:
指定我们开放的ip,确保不会被默认设置为127.0.0.1:8002导致外部无法访问进来。
java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:8002 xxx.jar
回车启动,会看到下面的字样,就说明成功监听了:
Listening for transport dt_socket at address: 8002
Third Step 在本地调试
点击debug
可以看到控制台中显示出了以下字样,说明连接成功。
Connected to the target VM, address: '{ip}:8002', transport: 'socket'
然后就可以像调试本地程序一样打断点调试了~
来源:https://blog.csdn.net/m0_46311226/article/details/108957070


猜你喜欢
- public static class DataTableHelper { &nb
- 对象的读写使用ObjectInputStream和ObjectOutputStream读写对象(序列化与反序列化)。只有字节流没有字符流.类
- 在eclipse中默认的maven,它加载的是国外的镜像,那样速度会比较慢,如果使用国内镜像,比如阿里的中央仓库;速度会快很多。那如何修改m
- 问题描述这里我想测试某个与springboot相关的问题,结果在搭建mybatis时,发现没有成功从数据库中获取数据,报错信息为com.my
- SpringBoot集成Mybatis时mybatis.mapper-locations和@MapperScan的作用1、mybatis.m
- public class PullToLoadListView extends ListView implements OnScrollLi
- 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一
- 0. 困扰很久的问题Android控件的宽和高保持比例,这是从我接触Android以来,一直不断会遇到的需求。以前,要么就是在代码里直接设置
- 在页面提交到tomcat乱码 解决方法是在tomcat/conf/server.xml中进行配置以tomcat6.0.32为例,需将以下代码
- 接触了这么久的View,总不能一直停留在View里,现在开始呢,就要学习一个新的知识点:SurfaceView,实际上SurfaceView
- 线程池中ThreadGroup的坑在Java中每一个线程都归属于某个线程组管理的一员,例如在主函数main()主工作流程中产生一个线程,则产
- 实例如下:/** * 弹出一个带确认和取消的dialog * @param context * @param title * @param
- 窗体展示开始后展示结束摇色展示代码导入的命名空间using System;using System.Collections.Generic;
- 一:父级pom.xml文件 resources目录下新建指定文件夹,存放Spring配置文件<profiles> &
- JWT可以理解为一个加密的字符串,里面由三部分组成:头部(Header)、负载(Payload)、签名(signature)由base64加
- Spring中BeanFactory FactoryBean和ObjectFactory的三种的区别引言关于FactoryBean 和 Be
- 本文实例讲述了C#实现xml文件反序列化读入数据到object的方法。分享给大家供大家参考。具体实现方法如下:public static o
- 前言结果映射指的是将数据表中的字段与实体类中的属性关联起来,这样 MyBatis 就可以根据查询到的数据来填充实体对象的属性,帮助我们完成赋
- 配置不生效的解决办法注意:如果配置不生效,则说明spring优先加载了其他配置:解决办法:添加启动参数 -Dlogging.config=c
- 这篇文章主要介绍了JDBC自定义连接池过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参