IntelliJ IDEA远程调试(Debug)Tomcat

为何须要这么作?

  • 解决 在我本地是好的啊 这个世界性难题~
  • 测试环境碰到问题,直接连上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并开启远程调试的端口html

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

服务器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…“:vim

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

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

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

若是看到下图则表明成功了intellij-idea

拓展

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

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

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

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

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

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

参考连接

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


本文做者:夏日浅笑、
原文地址:http://www.javashuo.com/article/p-anujjfxr-eq.html 本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文连接。

相关文章
相关标签/搜索