为什么需要这么做?

  • 解决 在我本地是好的啊 这个世界性难题~
  • 测试环境碰到问题,直接连上debug,不用再测试本地,再查看测试环境日志
  • 遇到一些诡异的问题,日志是看不出端倪的
  • 调试一些只能在测试环境执行的流程,如:调用微信/支付宝付款

服务器Tomcat配置

  • 以 Linux 环境为例
  • Tomcat 安装在: /usr/program/tomcat7
  • Tomcat 的执行程序:/usr/program/tomcat7/bin/catalina.sh
  • 编辑 Tomcat 执行程序: vim /usr/program/tomcat7/bin/catalina.sh
    • 查找Tomcat的debug端口:/JPDA_ADDRESS=
    • 默认的debug端口是8000,我这里是配成了5005
    • 在bin目录下执行命令 sh catalina.sh jpda start ,可以启动tomcat并开启远程调试的端口

      其实官方教程是在文件的开头加上 export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005' ,但是我不想让其他同事也是以debug模式启动。

服务器Jetty配置

  • 以 Linux 环境为例
  • Tomcat 安装在 /usr/program/tomcat7
  • jetty 不像Tomcat那样需要安装,只要有jetty的jar包就可以启动我们想要启动的应用
  • 在启动应用的时候加入 agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 就像这样:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &

在IntelliJ Idea中远程连接tomcat

点击下图红框中的”run”按钮,在下拉菜单中点击“Edit Configurations…“:

在弹出的菜单中点击“+“,再点击“Remote“:

如下图,修改Port框中的数字为之前设置的Tomcatdebug端口号(默认8000),如果tomcat部署在其他机器上,请在Host输入框中填入tomcat所在机器的ip:

设置完毕后点击下面的“ok“,回到主窗口后,点击下图红框中的下拉菜单,选中我们刚才新建的debug配置项,再点击小虫按钮,就能连接到tomcat的debug端口了:

如果看到下图则代表成功了

拓展

  • 标注 1:运行远程 JVM 的命令行参数;
  • 标注 2:传输方式,默认为Socket;
  • 标注 3:调试模式,默认为Attach;
  • 标注 4:服务器 IP 地址,默认为localhost,需要修改为目标服务器的真实 IP 地址;
  • 标注 5:服务器端口号,默认为5005,需要修改为目标服务器的真实端口号;
  • 标注 6:搜索资源是使用的环境变量,默认为,即整个项目。

如上图所示,其中 标注 2 和 标注 3 又分别有两种分类,

标注 2:传输方式,默认为Socket; 

Socket:macOS 及 Linux 系统使用此种传输方式;
Shared memory: Windows 系统使用此种传输方式。

标注 3:调试模式,默认为Attach; 

Attach:此种模式下,调试服务端(被调试远程运行的机器)启动一个端口等待我们(调试客户端)去连接;
Listen: 此种模式下,是我们(调试客户端)去监听一个端口,当调试服务端准备好了,就会进行连接。

参考链接

本文为博主对几篇 博文|教程 的总结,部分文字为直接复制。以下为原文链接:

本文作者:夏日浅笑、
原文地址:https://www.cnblogs.com/summertime-wu/p/9484420.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

IntelliJ IDEA远程调试(Debug)Tomcat的更多相关文章

  1. 二十八、详述 IntelliJ IDEA 远程调试 Tomcat 的方法

    在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...

  2. IntelliJ IDEA 远程调试 Tomcat 的方法

    在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...

  3. 详述 IntelliJ IDEA 远程调试 Tomcat 的方法

    首先,配置remote: 如上图所示,点击Edit Configurations,进入如下界面: 如上图所示,我们进入了Run/Debug Configurations界面,然后点击左上角的+,选择R ...

  4. eclipse/intellij idea 远程调试hadoop 2.6.0

    很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试 ...

  5. Intellij IDEA远程调试tomcat

    1.windows系统 文件catalina.bat首行增加下面代码 set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE ...

  6. IntelliJ IDEA 远程调试

    远程调试服务器是一个比较实用的技巧,以便我们能够迅速定位线上问题.本文会介绍如何在IntelliJ IDEA中进行远程调试. 配置IntelliJ IDEA 选择Edit Configurations ...

  7. linux下的java远程调试jpda+tomcat

    项目放到linux服务器了,服务器的环境或者数据可能和我们本地不一样,这个时候我们可能需要远程的断点进行调试,来查看请求过程中的各个变量的值.这里我们的应用服务器用的tomcat5.5.17 这个时候 ...

  8. Eclipse进行远程调试(Tomcat远程调试)

    1.配置tomcat Linxu系统: tomcat/bin/catalina.sh或者startup.sh开始处中增加如下内容: declare -x CATALINA_OPTS="-Xd ...

  9. IntelliJ IDEA远程调试运行中的JAVA程序/项目

    一.IntelliJ IDEA配置 1.添加一个运行配置(remote项) 2.打开remote项配置对话框 3.远程jvm参数配置提示 4.远程调试的ip地址和端口号,ip就是java项目所在机器i ...

随机推荐

  1. 4.5管道实现机制和模拟构建管道「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 管道实现机制 要了解管道的实现机制,我们必须要深入框架的源码,幸亏微软开源了,我们可以访问GitHub的地址来下载 ...

  2. TypeScript|Angular踩坑笔记

    今天按照Angular官网玩了下demo程序,踩了个小坑,记录下. TypeScript可以将变量申明为自定义类型,同时也不对该类型进行检查(不像C#,如果没有这个类型会报错) 比如下面这样: 如果我 ...

  3. [Nodejs] node的fs模块

    fs 模块 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作 API. Node 导入文件系统模块(fs).Node.js 文件系统(fs 模块)模块中的方法均有异步和同步版本,例如 ...

  4. 由于服务主机:DCOM服务进程占用过多CPU,导致系统卡死

    最近在使用电脑的时候,总是出现电脑死机,而且鼠标也是经常卡在那里不动了,开始以为是鼠标的问题,还换了个鼠标(飙泪中),这还是一个血的教训啊!!!之后打开任务管理器发现CPU占用已经达到100%,而且一 ...

  5. phpstorm 代码注释后,撤销某段代码的注释的,快捷键是什么?

    phpstorm 的代码注释有两种风格,一种是双斜杠,另一种是 /* ...  */风格,两者的快捷键都是开关式(即按第一次为注释,再按一次为撤销注释),快捷键如下: 1.双斜杠注释   Ctrl + ...

  6. python中的zip()函数和map()函数

    一.zip()函数 1.语法: zip(iterable, ...) 参数说明: iterable,...-- 一个或多个迭代器; 在python2中: zip() 函数用于将可迭代的对象作为参数,将 ...

  7. 关于Fragment里面嵌套fragment

    今天看到一篇好文章 https://www.2cto.com/kf/201609/545979.html 转载过来记录一下,往后需要的时候可以随时查看: 接下来进入正题: 动态fragment的使用 ...

  8. .NET Core 学习笔记2——管理nuget包

    .NET Core 基于Nuget包.它是一个.nupkg后缀的zip文件. 工具 dotnet 工具 vs2017 的程序包管理控台 这两个工具都可以用命令行来下载安装,更新,上传包(上传要先在网站 ...

  9. Powershell Linux正式版可用,启动名称有变

    CentOS yum install powershell 但并没有powershell这个可执行文件.通过搜索可以发现在powershell目录里有pwsh可执行文件,那么以后就要用pwsh执行了. ...

  10. SpringBoot热部署-解决方案

    在SpringBoot中启用热部署是非常简单的一件事,因为SpringBoot为我们提供了一个非常方便的工具spring-boot-devtools,我们只需要把这个工具引入到工程里就OK了,下面我就 ...