IDEA远程调试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/49209541

tomcat中启动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调试端口8000

OK,通过 ./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或者杀进程等等),再去建立自己的想要的连接来调试。

时间: 2024-10-12 07:29:03

IDEA远程调试Tomcat的相关文章

如何用myeclispe远程调试tomcat

在工作开发中,通常用本机进行代码编写,然后将编好的工程部署到测试服务器进行测试.往往测试服务器并不是自己的本机,因此对调试带来众多不便.今天学习可以用myeclispe远程调试tomcat. 步骤:1.将工程部署到远程测试服务器. 2.远程登陆测试服务器,启动tomcat远程调试.要用到的相关命令 sudo su - ps -ef | grep tomcat kill -9 进程号 sh catalina.sh jpda start     //以debug模式启动Tomcat(进入tomcat

使用Eclipse远程调试Tomcat

有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后台通 知就不得不用外网的ip.无奈,只能扔到服务器远程调试了. 网上讲关于远程调试tomcat的倒是蛮多,基本都是将改啥catalina.sh,startup.sh的,操作还是复杂点.下面这篇就只针对于 linux下的tomcat远程调试,不用改啥文件,简单而又没啥副作用.本人在tomcat6 的情况下远程调试成功. 相信很 多J2EE的开发者都是在Windows上面开发程序,然后把程序上传到Linux下运行的吧.可是有时候在自己机器

MyEclipse远程调试Tomcat

程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样.于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在本机打断点跟一下,这就用到了用eclipse远程调试Tomcat.记得以前好久之前研究了一下,怎么也没弄成功.最近终于OK啦. 一.调试准备 首先得有一个在远程服务器上的Tomcat与一个在本地的Eclipse,还有就是一个已经部署在远程Tomcat上并且源代码在本地Eclipse上的程序.当然如果

Eclipse远程调试Tomcat

最近,一直在研究Tomcat的工作内幕,主要的方法就是参考<How Tomcat Works> 这本书和Tomcat 5.5.26的源代码. Tomcat的代码结构还是比较清晰的,注释也比较全.但是代码毕竟是静态的,难以彻底弄清类与类之间的协作关系,以及运行时对象的交互关系. 如果能对Tomcat的启动.处理请求和停止的过程进行断点调试,看清Tomcat的每一步行踪,那么就能解决上面的问题了. 于是,又一个问题出来了:如何使用Eclipse远程调试Tomcat ? 上网查了一些资料,相关的文章

远程调试tomcat

程序就是这么一个神奇的东西,有时你的一个项目,在本机上运行得还是好好的,可当你把这货放到了服务器上,同样的条件就是结果不一样.于是就灰常想看一下程序在远程运行时候的状态,希望让程序在远程运行,还可以在本机打断点跟一下,这就用到了用eclipse远程调试Tomcat.记得以前好久之前研究了一下,怎么也没弄成功.最近终于OK啦. 一.调试准备 首先得有一个在远程服务器上的Tomcat与一个在本地的Eclipse,还有就是一个已经部署在远程Tomcat上并且源代码在本地Eclipse上的程序.当然如果

IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法

公司项目放在远程服务器上,之前都是将项目打包放上去运行后在log中查看相关调试信息,发现问题后在本地编辑器修改后再次打包上传调试,但是这种方式实在是让人抓狂,一则不断的在大量的log中查看有效信息太累,而且log中的信息也有限:再则一直重复编辑-打包-上传-调试很折磨人,所以才想到了远程调试.搜索了网上的方法要么就是设置界面跟我不一样,要么就是即使跟他们设置的一样依然不起作用,不进断点,在尝试了多次以后终于调通,在这里记录一下,也给大家做个参考! 大前提:本地工程和发布到远程服务器上的工程代码要

idea14远程调试tomcat项目

场景如下:本地开发好代码之后,到qa那边提测,qa把同一份代码部署到自己的linux测试机. 远程调试的步骤如下: 1. 首先在IDEA中打开项目代码,并保证远程调试机器,也是同一份代码. 2. 因为我们用的是Tomcat,所以在IDEA中点击右上角那个"Edit Configurations"按钮,然后在弹出的界面中点击左上角的加号,选择tomcat server->remote 3. 在弹出的的界面中填写服务器的ip和工程的端口. 4. 然后点击那个弹出框的Starup/Co

idea 远程调试 tomcat web应用

最近在做的一个东西,测试环境和本地环境差距太大,本地能运行的代码,放到测试环境上到处报错,哪里哪里都连不上,所以决定把代码部署到远程服务器上调试,节省时间. 网上看了很多教程,大部分都是互相抄来抄去,照做了也调不通,所以决定把自己的步骤发上来,但是不会对这些步骤作详细解释,需要明白原理的童鞋请自行百度... 远程环境:debian 7 ,tomcat7 , jdk1.8 本地:win7,tomcat7,jdk1.8,idea2017 默认jdk均已安装好. 1.远程tomcat配置: 部署在/h

eclipse远程调试Tomcat方法

1.Linux中配置tomcat在catalina.sh中添加如下CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"(不要换行,要在同一行) 2.Window中修改 catalina,bat文件,添加: Set  “CATALINA_OPTS=-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,s