-
JAVA Remote Debug With Tomcat | Tomcat远程调试
2019-05-24 15:42:50Java远程调试的原理是两个JVM之间通过Debug协议(JDWP)进行通信,然后以达到远程调试的目的。通讯方式为socket,所以会看到transport=dt_socket的配置 JDWP是Java Debug Wire Protocol的缩写。The JavaTM Debug Wire ...Java Remote Debug?
Java远程调试的原理是
两个JVM
之间通过Debug协议(JDWP)
进行通信,然后以达到远程调试的目的。通讯方式为socket,所以会看到transport=dt_socket
的配置JDWP是
Java Debug Wire Protocol
的缩写。The JavaTM Debug Wire Protocol (JDWP) is the protocol used for communication between a debugger and the Java virtual machine (VM) which it debugs (hereafter called the target VM)。Start Debug With Tomcat
1.首先找到tomcat\bin目录下的
startup.bat
文件,在大概40行左右的位置set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
这句话上方添加set “CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787”
suspend表示是否在调试客户端建立连接之后启动 VM,如果为y,那么当前的VM就是suspend直到有debug client连接进来才开始执行程序。如果你的程序不是服务器监听模式并且很快就执行完毕的,那么可以选择在y来阻塞它的启动。一般推荐
suspend=n
。2.启动tomcat,查看
netstat -aon|findstr "8787"
8787端口是否被占用。3.接着Eclipse或者IDEA配置并设置
Remote Java Application
,设置正确的端口connection port = address port
-
Eclipse 3.1 中 集成 Tomcat 远程调试
2007-05-15 10:44:00Eclipse 3.1 中 集成 Tomcat 远程调试 前段时间调试Eclipse 的时候 出现了一点问题 . 就是在添加一个 Eclipse 3.1 remoto application ... 远程调试原理~ 启动Tomcat 的 start .bat 文件 在Tomcat/bin 下的 catEclipse 3.1 中 集成 Tomcat 远程调试
前段时间调试Eclipse 的时候 出现了一点问题 . 就是在添加一个 Eclipse 3.1 remoto application Debug 的时候出现的. 报错的 内容是 尝试连接远程 VM 失败.
远程调试原理~
启动Tomcat 的 start .bat 文件
在Tomcat/bin 下的 catalina.bat 中做一些修改 加上一个参数
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
其中有一个 address = 8000 表示Tomcate 中调试的端口号.
启动 Eclipse 在 -> Debug 中 Add 一个 remoto java application 的应用 在 host 中输入你 应用服务器的IP地址. 在port 中输入 刚刚Tomcat 中设置的调试端口号~ 8000 然后直接 Debug .
在代码中增加几个段点~ 然后就可以调试了.
------------------------------------------------------------
启动tomcat之前设置两个环境变量cd %CATALINA_HOME%/bin
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
startup
最好的方式就是建一个bat文件,内容如下(假设你的CATALINA_HOME地址是D:/tomcat-5.5.9):代码- set JPDA_ADDRESS=8000
- set JPDA_TRANSPORT=dt_socket
- cd D:/tomcat-5.5.9/bin
- catalina jpda start
然后在eclipse中选择Run-->Debug,弹出页中左边选择Remote Java Application,右边Name 填一个 project 填写上需要远程调试的project名称,host:localhost Port:8000(这些eclipse会自动帮你填充上)
-
Mac下IDEA+Tomcat的远程调试
2017-09-09 11:01:56java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。 Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者...学习IDEA远程调试,远程调试服务器代码更加方便。
一:原理
java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。
Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。 首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。 java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n zhc_application 这是jdk1.7版本之前的方法,1.7之后可以这样用: java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n zhc_application
首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。
二:步骤:
最初要先确认本地代码和服务器的代码是一致的。
1.首先要启动远程调试,首先要把服务器端的Tomcat的启动参数设置一下
shell连接服务器,进入tomcat目录下的bin目录找到catalina.sh文件,vim打开,找到JAVA_OPTS项,添加
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=5555
其中的‘5555’ 是自己配置的端口,可任意,注意冲突就好。
然后 ./shutdowm.sh 关闭tomcat
关闭的时候 如果出现类似字样 说明已经设置成功,重启就好
./startup.sh启动tomcat
服务器端设置到此结束。
2.打开idea打开项目 Run--》Edit Configurations然后在弹出的界面点击“+” 选择TomcatServer--》remote
然后会弹出如下界面
名字和下面的Remote Conection Settings写好自己的服务器和端口,在Startup/Connection选项中点击debug,然后在下方的port填写之前填写的端口,本例:5555 然后Apply OK 此时本地的IDEA就配置好了
3.调试:
切换到上面新建的服务,然后点击debug按钮。注意控制台的信息,如果出现
Connected to the target VM, address: '101.200.33.138:5555', transport: 'socket'
说明上面所做的工作都是正确的。注意在代码上面打上断点,然后向服务器发送请求,就会正常的在断点处停下,但运行的是服务器上面的代码。
4.调试吧
-
IDEA远程调试Tomcat
2016-05-10 09:52:09IDEA远程调试Tomcat之前基本上都是打log来找BUG的,看看log基本上也就知道什么问题了。但是把有些问题还是调试来的方便,于是开始研究怎么远程调试Tomcat。。。。表示各种教程太杂太乱,基本上不懂原理。弄了半天,...IDEA远程调试Tomcat
之前基本上都是打log来找BUG的,看看log基本上也就知道什么问题了。但是把有些问题还是调试来的方便,于是开始研究怎么远程调试Tomcat。。。。表示各种教程太杂太乱,基本上不懂原理。弄了半天,终于能够调试了。。记录下。
一、tomcat的jpda服务
什么是JPDA呢
JPDA(Java Platform Debugger Architecture) 是 Java 平台调试体系结构的缩写,通过 JPDA 提供的 API,开发人员可以方便灵活的搭建 Java 调试应用程序。JPDA 主要由三个部分组成:Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP),以及 Java 调试接口(JDI)。而像Eclipse和IDEA这种开发工具提供的图形界面的调试工具,其实就是实现了JDI。关于JPDA的详细信息,可以查看developerWorks上的系列文章—-深入Java调试体系
- - - - - - - - - - - - -来自http://blog.csdn.net/mhmyqn/article/details/49209541tomcat中启动jpda服务
./catalina.sh jpda start
在catalina.sh脚本中,可看到jpda的默认配置是这样的
if [ "$1" = "jpda" ] ; then if [ -z "$JPDA_TRANSPORT" ]; then JPDA_TRANSPORT="dt_socket" fi if [ -z "$JPDA_ADDRESS" ]; then JPDA_ADDRESS="8000" fi if [ -z "$JPDA_SUSPEND" ]; then JPDA_SUSPEND="n" fi if [ -z "$JPDA_OPTS" ]; then JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND" fi CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS" shift fi
默认的端口是8000,当然也可以改成自己喜欢的端口。好吧,其实这些脚本我根本看不懂,但是对shell script一直有着神圣的敬意,于是我觉这个周末学学这个神奇的东西。。跑题了
二、IDEA如何操作
1、添加remote tomcat server
2、填写主机信息,IP:PORT(注意这里的port不是jpda调试的端口,而是tomcat访问端口)
3、进入startup/connection—>Debug 看到下面图的信息,把下面的端口改为jpda调试端口8000OK,通过 ./catalina.sh jpda start命令重新启动tomcat后就可以在idea中调试了。。(注意代码版本要和tomcat中部署的一致。。tomcat关闭命令 catalina.sh stop)
本人使用的IDEA版本 15.2 tomcat版本apache-tomcat-8.0.32 系统:osx 10.11.2(系统不同会稍微不同。。请自行探讨)
**分割线2016-3-15*****
问题记录
在使用过程过还是遇到了一些问题,主要还是端口的问题。当一台机器上得一个端口已经与远程tomcat宿主机开始建立通讯的时候(tcp ESTABLISHED)的时候,会无法再次建立连接,但是这个时候可能并没有反馈。
但问题是可能已经建立的连接你也不知道是如何出现了,这个时候需要查看远程主机的端口使用情况,查看是否已经建立连接。如果已经建立连接,但是调试时并卵,想办法把这个连接关闭(重启IDE或者杀进程等等),再去建立自己的想要的连接来调试。 -
Eclipse远程调试Tomcat
2008-06-30 19:49:51Remote Debugging with Eclipse说明了远程调试的原理,说明了让java程序支持被远程调用所需要的java参数如下 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 以及如何配置远程调试weblogic... -
eclipse中远程调试tomcat应用
2019-09-20 09:03:57远程调试的关键在jpda的启动....附件是tomcat下启动jpda的方法,以及接受远程调试套接字参数的配置. 原理很简单,修改tomcat/bin/start.bat 将 call "%EXECUTABLE%" start %CMD_LINE_ARGS% 改成 call "%EX... -
IDEA远程bug调试Tomcat
2018-03-19 15:48:50IDEA远程调试Tomcat之前基本上都是打log来找BUG的,看看log基本上也就知道什么问题了。但是把有些问题还是调试来的方便,于是开始研究怎么远程调试Tomcat。。。。表示各种教程太杂太乱,基本上不懂原理。弄了半天,... -
JVM远程调试功能开启,与原理
2020-12-28 21:37:20前言 以前有篇文章,讲解Tomcat开启远程调试功能,只是讲解了用法,以及Tomcat的作者书写脚本的初衷。原理没写,其实不是Tomcat的具有远程调试功能,是JVM虚拟机提供的能力。 -
【IDEA】Tomcat,jetty,springBoot项目进行远程调试
2019-08-12 11:23:24远程调试原理Java调试器架构Tomcat 服务器配置方式Jetty配置配置参数拓展注:服务器代码最好和本地调试端代码保持一致 为什么需要这么做? 解决 在我本地是好的啊 这个世界性难题~ 测试环境碰到问题,直接连上... -
java远程debug调试tomcat
2017-03-01 14:40:07JVM原理 众所周知,Java由于引入了虚拟机JVM,拥有了很好的跨平台和安全性,.java文件由Javac编译成.class文件也叫字节码文件,字节码文件由...远程调试很有用,特别是当你的开发环境在Window,又在远端Linux Se -
使用Eclipse远程调试发布在Tomcat上的Web应用
2008-03-12 13:11:00Remote Debugging with Eclipse说明了远程调试的原理,说明了让java程序支持被远程调用所需要的java参数如下-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044以及如何配置远程调试weblogic... -
【转】使用Eclipse远程调试发布在Tomcat上的Web应用
2019-10-07 11:59:15原文:http://www.blogjava.net/justfly/archive/2007/02/05/98090.htmlRemote Debugging with Eclipse说明了远程调试的原理,说明了让java程序支持被远程调用所需要的java参数如下-Xdebug -Xrunjdwp:transport=dt_... -
IDEA对tomcat远程debug
2018-06-28 04:23:37一、场景: 1、实际项目开发中,为了方便定位问题,需要远程debug逐步调试代码。二、远程debug原理: 1、实际是两个JVM进行远程通信,通讯的方式通过socket方式。 2、socket方式两种,Socket Listen和Socket ... -
Tomcat远程debug(只需要修改一个配置)
2018-08-15 16:53:46问题:tomcat远程debug 解决:只需要修改一个地方 在tomcat的bin下修改startup.bat (linux即startup.sh) ,在最后一个start前加上jpda 保存 ok了 然后启动tomcat就可以了 调试:打开eclipse 然后在... -
idea远程调试修改代码_使用 intellij idea 进行远程调试
2021-01-15 04:02:50以前都是很土得打 log ,发现一篇关于java 调试器架构,以及eclipse 上使用的文章,在常用的 intellij idea 以及 tomcat 上调试成功,结合调用堆栈希望可以加快 ``how tomcat works`` 读书进度。原理:... -
Eclipse 远程调试
2009-11-02 16:14:30Remote Debugging with Eclipse说明了远程调试的原理,说明了让java��序支持被远程调用所需要的java参数如下-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044以及如何配置远程调试weblogic... -
IDEA远程调试的
2017-04-09 12:06:25Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。 1,显首先tomcat/bin目录下catalina.sh或者catalina.bat下加入以下脚本 CATALINA_OPTS=”... -
MyEclipse/Eclipse调试远程Tomcat--基本配置以及简单优化
2018-02-24 15:58:08简介:既然看到这个博客,想必已经知道远程调试Tomcat是什么意思了,我这里只解释我这里写的不同之处。想要简单实现一个调试Tomcat并非难事,但是怎么用起来方便,就是我要实现的事情。基本使用:1)原理: 基于JDK... -
IDEA如何进行远程调试
2021-02-23 18:28:39IDEA如何进行远程调试环境原理需要修改的内容步骤修改项目运行配置修改tomcat启动配置防火墙开放调试端口测试题外话 环境 Win10 + IDEA2021.1.4 CentOS7 + tomcat9.0.43 我对springboot项目打了war包,有版本依赖:... -
Tomcat Remote Debug操作和原理
2019-09-29 04:53:24这部分主要讲,如何开启tomcat远程调试,并佐以实例。本文方式适用于windows和linux。 假设有两台机器,A是tomcat服务器所在机器,B是IDE安装机器。A和B可以是同一台机器,通常A是测试环境,B是开发环境。 简洁... -
使用 intellij idea 进行远程调试
2015-11-12 20:35:12以前都是很土得打 log ,发现一篇关于 java 调试器架构 ,以及 eclipse 上使用 的文章,在常用的 intellij idea 以及 tomcat 上调试成功,结合调用堆栈希望可以加快 ``how tomcat works`` 读书进度。 原理:... -
IntelliJ IDEA | 调试远程 JAVA 服务
2019-08-12 11:10:12文章目录1 概述2 设置2.1 IDEA 中指定 Debug 服务器2.2 远程服务中开启 Debug 服务2.2.1 对于 SpringBoot2.2.2 对于 Tomcat2.3 远程服务器防火墙端口放行3 开始调试4 关闭调试 1 概述 原理:本机和远程主机的两个 VM... -
tomcat 常用配置
2013-04-27 15:02:08远程调试的原理是jpda.前人已有总结http://kyfxbl.iteye.com/blog/1697203 配置方式一般是修改tomcat的启动脚本.一般tomcat脚本里已经存在,只是默认没有开启. 可以在在start脚本里启用 默认调试端口8000...