Intellij IDEA基于Springboot的远程调试
时间:2019-10-24
本文章向大家介绍Intellij IDEA基于Springboot的远程调试,主要包括Intellij IDEA基于Springboot的远程调试使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
简介
本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能。所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。
方法
首先,打开Edit configurations,点击+号,创建一个Remote应用。
填写name,配置Host地址(远程服务器地址)和端口(选一个未被占用的端口)。然后复制For JDK1.4.x下面的参数,示例配置的端口为5005
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
经过以上步骤,已经获得了启动远程服务器的参数。在启动springboot时默认使用java命令来启动.
比如,示例项目启动命令为:
$ java -jar remotedebug-0.0.1-SNAPSHOT.jar
那么此时在启动命令上添加上面获得的参数(非springbboot项目,就是把多的那段配置添加到相应的环境变量即可):
$ java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 remotedebug-0.0.1-SNAPSHOT.jar
这样服务端就监听在5005端口了。可以通过以下命令来检查是否监听成功:
netstat -anp | grep 5005
docker
如果应用是跑在容器中的,只需要修改Dockerfile即可。例子如下
FROM java:8
COPY target/agents.jar /app.jar
EXPOSE 8080
EXPOSE 5005
ENTRYPOINT ["java","-jar" ,"-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-Dspring.profiles.active=sit","/app.jar"]
通过以上步骤已经完成了服务器端参数的添加。下面启动刚才配置的Remote服务。在启动时候我们会发现此项启动程序只有debug启动模式。
启动完成,对需要debug的代码打上断点,剩下的操作步骤就是访问远程服务器对应的业务请求,本地就会同步debug。其余的操作与本地debug相同,此处就不再赘述了。
原文地址:https://www.cnblogs.com/mrChangChang/p/11731755.html
- eclipse SWT Designer 插件
- 身份证号码验证算法
- JS读书心得:《JavaScript框架设计》——第12章 异步处理
- 被解放的姜戈04 各取所需
- PLT:说说Evaluation strategy
- 被解放的姜戈06 假作真时
- idea 创建的maven+spring+mybatis项目整合 报错无法创建bean
- 代数几何:点,线,抛物线,圆,球,弧度和角度
- 被解放的姜戈05 黑面管家
- 用数据来告诉你2018年的未来趋势
- JavaWeb(三)JSP之3个指令、6个动作、9个内置对象和4大作用域
- 被解放的姜戈03 所谓伊人
- JS魔法堂: Native Promise Only源码剖析
- JavaWeb(三)JSP概述
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 深入解析Android中的setContentView加载布局原理
- Android编程之自定义ProgressBar示例
- Android自动获取输入短信验证码库AutoVerifyCode详解
- Android编程实现对话框形式进度条功能示例
- Android ButtonOnClick事件的写法总结
- Android 自定义弹出菜单和对话框功能实例代码
- linux文件管理命令实例分析【权限、创建、删除、复制、移动、搜索等】
- Android编程操作手机通讯录的方法示例
- Android中oncreate中获得控件高度或宽度的实现方法
- Android编程自定义对话框(Dialog)位置及大小的方法
- android端实现验证码随机生成功能
- Android编程实现切换imageView的方法分析
- 猿实战20——商品发布之sku与笛卡尔乘积的那些事儿
- 浅谈Android单元测试的作用以及简单示例
- linux上传并配置jdk和tomcat的教程详解