首页 > 其他 > 详细

IDEA远程调试Tomcat

时间:2018-08-15 23:31:16      阅读:184      评论:0      收藏:0      [点我收藏+]

访问我的博客

前言

开发新功能时,经常会遇到在本地环境运行没问题,但是部署到了 Linux 服务器上跑的时候就出现问题这种情况;还有一种情况是需要定位线上问题,这两种情况以前的做法就是加 log 日志输出,总是不能精准定位问题所在,如果能够像本地环境一样调试代码,那这个问题也就迎刃而解了。

开始之前

本文介绍 IDEA 与 Tomcat 的远程调试,且笔者在日常工作当中也是这么做的,网上很多都是互相抄袭,没有经过验证的伪原创,让人不快。

一、添加运行项

IDEA 添加远程调试项

技术分享图片

填写服务器 IP ,端口使用默认的即可,复制第二行参数

技术分享图片

二、修改服务器中的 Tomcat 配置

连接远程服务器,进入 Tomcat 根目录下的 bin 目录,修改 catalina.sh 文件

定位到 108 行左右,找到 cygwin=false 这一行,

在这一行的前一行添加

JAVA_OPTS=""

然后将从 IDEA 中复制的那串参数粘贴到双引号之间,保存退出。

技术分享图片

然后启动 Tomcat,如果 Tomcat 是已经启动的话,必须要重启一下。

三、调试环境修改

为了调试方便,需要暂时关闭掉防火墙,否则可能无法连接。

service iptables stop

四、IDEA 远程调试

回到 IDEA,点击 Debug 按钮,启动刚才添加的 Remote,如果以上没有配置错,那么控制台将打印出

技术分享图片

此时就和本地调试一样打断点调试就行了

五、解决IDEA 无法连接远程 Tomcat

如果提示无法连接,如下图

技术分享图片

则检查以上配置是否正确,确认都正确的话,可能是服务器防火墙的原因导致,需要关闭防火墙。

如果服务器是阿里云的,还需要配置 ECS 服务器的安全组,开放 5005 远程调试端口。 详见第八条

六、解决断点不生效

注意:

启动 Remote 的 Debug 之后,需要等待断点变成如下图时,再去访问接口;如果断点中间没有出现对号,说明断点还未生效,需要等待一会儿。

技术分享图片

如果有时候死活也没法断点,就把服务器上的 Tomcat 重启一下试试!

七、其他问题

因为在 catalina.sh 中添加了远程调试的参数,导致使用 tomcat 的 bin/shutdown.sh 时,可能无法完全停止服务器。可以直接 kill 掉服务器,如果不再进行远程调试,最后把远程调试参数注释掉重启。

八、阿里云 ECS 安全组设置

进入 ECS 控制台,点击安全组

技术分享图片

然后选择 创建安全组

技术分享图片

然后配置该安全组的规则

技术分享图片

点击公网入标签,再点击右上角 添加安全组规则

技术分享图片

授权对象 填写你的 ip 地址即可。

添加完安全组之后,进入 ECS 实例

技术分享图片

选择右侧 加入安全组,选择加入刚才添加的安全组即可。

IDEA远程调试Tomcat

原文:https://www.cnblogs.com/vcmq/p/9484626.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!