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并开启远程调试的端口其实官方教程是在文件的开头加上
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005',但是我不想让其他同事也是以debug模式启动。
- 查找Tomcat的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的更多相关文章
- 二十八、详述 IntelliJ IDEA 远程调试 Tomcat 的方法
在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...
- IntelliJ IDEA 远程调试 Tomcat 的方法
在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法.在本文中,就让我们一起来看看,如何利用 IntelliJ IDEA 进行远程 Tomcat 的调试. 首先,配置remo ...
- 详述 IntelliJ IDEA 远程调试 Tomcat 的方法
首先,配置remote: 如上图所示,点击Edit Configurations,进入如下界面: 如上图所示,我们进入了Run/Debug Configurations界面,然后点击左上角的+,选择R ...
- eclipse/intellij idea 远程调试hadoop 2.6.0
很多hadoop初学者估计都我一样,由于没有足够的机器资源,只能在虚拟机里弄一个linux安装hadoop的伪分布,然后在host机上win7里使用eclipse或Intellj idea来写代码测试 ...
- Intellij IDEA远程调试tomcat
1.windows系统 文件catalina.bat首行增加下面代码 set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE ...
- IntelliJ IDEA 远程调试
远程调试服务器是一个比较实用的技巧,以便我们能够迅速定位线上问题.本文会介绍如何在IntelliJ IDEA中进行远程调试. 配置IntelliJ IDEA 选择Edit Configurations ...
- linux下的java远程调试jpda+tomcat
项目放到linux服务器了,服务器的环境或者数据可能和我们本地不一样,这个时候我们可能需要远程的断点进行调试,来查看请求过程中的各个变量的值.这里我们的应用服务器用的tomcat5.5.17 这个时候 ...
- Eclipse进行远程调试(Tomcat远程调试)
1.配置tomcat Linxu系统: tomcat/bin/catalina.sh或者startup.sh开始处中增加如下内容: declare -x CATALINA_OPTS="-Xd ...
- IntelliJ IDEA远程调试运行中的JAVA程序/项目
一.IntelliJ IDEA配置 1.添加一个运行配置(remote项) 2.打开remote项配置对话框 3.远程jvm参数配置提示 4.远程调试的ip地址和端口号,ip就是java项目所在机器i ...
随机推荐
- LVS负载均衡原理
一.LVS基本原理概述 LB集群的实现,LB即负载均衡集群 硬件:F5 BIG-IP,Citrix NetScaler,A10,Array,Redware 软件:Lvs,nginx,haproxy,a ...
- C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...
- redis的持久化方式RDB和AOF的区别
1.前言 最近在项目中使用到Redis做缓存,方便多个业务进程之间共享数据.由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能, ...
- .Net学前入门
概念:.NET和C# .NET/dotnet:一般指.Net Framework框架,是一种平台,一种技术: .net由.net平台以及.Net Framework框架组成,我们可以把.net平台比喻 ...
- .NET Core:API文档
安装:Swashbuckle.AspNetCore 启用 XML 注释:右键单击“解决方案资源管理器”中的项目,然后选择“属性”.勾选“生成”选项卡的“输出”部分下的“XML 文档文件”框. 将 Sw ...
- sql 修改、更新、替换 某个字段的部分内容(转载)
来源:https://blog.csdn.net/jiangnanqbey/article/details/81304834 1*.需求 将表(Ws_FormMain)的字段(order_Number ...
- 如何在windows系统下安装swoole
swoole框架是一个很神奇很厉害的框架,它弥补了PHP的本身的一些不足之处.其实swoole确切的说是一个使用C语言编写的PHP扩展,并且这个扩展不能够在windows系统使用,但是就目前的开发环境 ...
- 编程心法 之什么是MVP What is MVP development?
Minimal Value product(feather), 比如说,如果是一个新的Photoshop,那么增加图片亮度就是一个MVP. 想要看到更多玮哥的学习笔记.考试复习资料.面试准备资料?想要 ...
- Numpy库的学习(四)
我们今天继续学习一下Numpy库 接着前面几次讲的,Numpy中还有一些标准运算 a = np.arange(3) print(a) print(np.exp(a)) print(np.sqrt(a) ...
- 简说Python生态系统的14年演变
[导语]Python 里各种丰富的标准库.第三方库和模块成为其广受欢迎的原因之一.而 PyPI 就是大家想第三方库前先要安装的一个仓库.作为使用者,它可以帮我们查找 Python 社区开发和共享的软件 ...