远程调试maven设置

The run goal forks a process for the boot application. It is possible to specify jvm arguments to that forked process. The following configuration suspend the process until a debugger has joined on port 5005

  1. <project>
  2. ...
  3. <build>
  4. ...
  5. <plugins>
  6. ...
  7. <plugin>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-maven-plugin</artifactId>
  10. <version>1.1.12.RELEASE</version>
  11. <configuration>
  12. <jvmArguments>
  13. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
  14. </jvmArguments>
  15. </configuration>
  16. ...
  17. </plugin>
  18. ...
  19. </plugins>
  20. ...
  21. </build>
  22. ...
  23. </project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

These arguments can be specified on the command line as well, make sure to wrap that properly, that is:

  1. mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
  • 1

jar 命令开启远程调试

在执行jar的时候,添加上参数。如下:

  1. java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar
  • 1

如果想深入了解Java调试,那么去看一下这个吧。深入Java调试体系

问题

如果出现Connection refused

首先检查一下端口8000的使用情况:

  1. use:~/tomcat/logs # netstat -an|grep 8000
  2. cp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN
  • 1
  • 2

可见当前16808端口服务被绑定了回环地址,外部无法访问。即本地调试。

办法:

修改catalina.sh中一个参数。

  1. if [ -z "$JPDA_TRANSPORT" ]; then
  2. JPDA_TRANSPORT="dt_socket"
  3. fi
  4. if [ -z "$JPDA_ADDRESS" ]; then
  5. JPDA_ADDRESS="0.0.0.0:8000"
  6. fi
  7. if [ -z "$JPDA_SUSPEND" ]; then
  8. JPDA_SUSPEND="n"
  9. fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

JPDA_ADDRESS="localhost:8000" 把默认值(localhost:8000)改成0.0.0.0:8000。默认是本地ip调试也就是无法远程调试,0.0.0.0表示所有ip地址都能调试。

远程连上后再看端口情况:

  1. root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000
  2. tcp 0 0 10.133.198.217:8000 60.177.99.27:49998 ESTABLISHED
  • 1
  • 2

断开后是这样的:

  1. root@VM-198-217-ubuntu:/opt/apache-tomcat-8.5.16/bin# netstat -an | grep 8000
  2. tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
  3. tcp 0 0 10.133.198.217:8000 60.177.99.27:49998 TIME_WAIT
  • 1
  • 2
  • 3

idea连接远程端口进行远程debug

我已经在服务器上开启了远程调试,idea连接的步骤,直接上图。

  1. edit configurations

  2. 远程调试配置 

  3. 参数配置 

    将红框内的地址和端口号改成自己的。

  4. 启动远程调试 

  5. 成功界面

  6. 请求一下试试

转自:https://blog.csdn.net/wsyw126/article/details/74853680

springboot开启远程调试的更多相关文章

  1. Java项目开启远程调试(tomcat、springboot)

    当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境apache-tomcat-8.5.16 Linux 如何启用 ...

  2. springboot项目使用idea开启远程调试

    远程调试是调试服务器的有效手段,远程服务器运行的应用可以在本地代码中打断点调试,能让开发人员准确定位服务器上的问题. 一.开启远程调试前提:本地代码与服务器代码一致, 二.开启远程调试步骤 1.开发工 ...

  3. tomcat如何正确的开启远程调试功能

    在日常开发中,有时需要对远程服务器上的应用进行远程调试,对于tomcat,要进行远程调试其实很简单,只需要在启动tomcat时开启jpda服务即可. 什么是JPDA呢? JPDA(JavaPlatfo ...

  4. tomcat开启远程调试

    tomcat开启远程调试模式: 需要在启动脚本中的 JAVA_OPTS='-server -Xms1024m -Xmx1024m -Xmn384m -Xss256k -XX:PermSize=128m ...

  5. tomcat如何正确的开启远程调试功能(转)

    转自:http://blog.csdn.net/mhmyqn/article/details/49209541 版权声明:本文为博主原创文章,未经博主允许不得转载. 在日常开发中,有时需要对远程服务器 ...

  6. 【IDEA】【SpringBoot】基于idea对springboot程序远程调试

    一.开启远程调试前提:本地代码与服务器代码一致(实测:不关键的代码稍微有点不一样好像也不会有多大问题). 二.开启远程调试步骤 1.开发工具配置 idea端打开Edit configurations, ...

  7. 惊呆了!Spring Boot 还能开启远程调试?

    持续原创输出,点击上方蓝字关注我 目录 前言 什么是远程调试? 为什么要远程调试? 什么是JPDA? 如何开启调试? transport server suspend address onthrow ...

  8. eclipse 在weblogic部署的工程项目开启远程调试remote config eclipse远程调试配置

    确认你的工程在weblogic中跑的起来,然后再结合eclipse debug配置+java debug运行模式搞个调试. 工程能跑起来没问题后,先在eclipse中,点击debug图标 然后点击De ...

  9. Intellij IDEA基于Springboot的远程调试

    简介 本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能.所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须 ...

随机推荐

  1. 配置mysql主从服务器

    参考:https://www.linuxidc.com/Linux/2016-09/135633.htm 一.Master主服务器配置(192.168.1.3) 1.编辑my.cnf(命令查找文件位置 ...

  2. 最新ssh2构架

    构架要求: 1.最新ssh2jar包. 2.使用全注解. 3.给锁机制 4.缓存. 5.使用权限构架. 6. 前台构架用bootstraps. 今天任务: 搭建php环境.看代码.整理ssh2架构. ...

  3. 快速上手npm

    1.npm的安装和更新 2.npm的常用操作 3.npm的常用配置项 4.npm常用命令速查表

  4. 算法排序-lowB三人组

    冒泡排序思路: 选择排序思路: 插入排序思路: 小结: 详细代码解释看下一篇

  5. Protostuff具体解释

    Protostuff具体解释 作者:chszs,未经博主同意不得转载. 经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 一.Protostuff介绍 Proto ...

  6. JSP 随记

    jstl <c:forEach> 遍历,多个<option>时显示"全部".单个 option时,默认选中! 引入:<%@ taglib prefix ...

  7. nginx+thinkphp pathinfo模式配置

    server { listen 81; server_name http://lanxing.cc gohosts.com; root "D:\WWW\lanxing\public" ...

  8. 关闭和定时显示DIV

    <script type="text/javascript"> $(function(){ $('#ad1').css('display','block'); }) f ...

  9. 多项式相乘快速算法原理及相应C代码实现---用到fft

    最近认真研究了一下算法导论里面的多项式乘法的快速计算问题,主要是用到了FFT,自己也实现了一下,总结如下. 1.多项式乘法 两个多项式相乘即为多项式乘法,例如:3*x^7+4*x^5+1*x^2+5与 ...

  10. React深入源码--了解Redux用法之Provider

    在Redux中最核心的自然是组件,以及组件相关的事件与数据流方式.但是我们在Redux中并没有采用传统的方式在getInitialState()中去初始化数据,而是采用Provider统一处理,省去了 ...