JavaWeb应用 远程调试(线上调试)(IDEA, Eclipse)多种方式相关文章学习以及个人实践和理解总结

远程调试意义

当项目部署到实际的应用服务器或国产,或tomcat,这个时候如果想要找一些没来由或者日志中无法分析出的错误时,可能就会想到

“如果能将线上环境的请求都转发到你本地电脑上的项目代码的话,定位一些问题就会轻易很多!”

很多时候往往是环境问题会导致一些莫名的问题出现,也有可能是一些谜之操作引发了新的问题,这个时候远程调试的意义就显现出来了,我们可以借用线上的环境,去跑本地电脑上的代码,方便我们快速定位问题。

注意点
开启后线上所有请求都会转发到你这里处理,最好不要在线上环境被使用时调试,否则很有可能会阻碍别人的操作

服务端配置修改方式一(tomcat)

  1. 找到线上环境的 tomcat 所在文件路径,进入 bin 目录
  2. 此时需要修改 catalina 文件,若是linux环境找到 catalina.sh linux的可运行文件,若是windows 找到 catalina.bat 可执行的批处理文件
  3. 修改内容如下:
    catalina.sh
    在这里插入图片描述
    这里的意思好像是,允许任意来源访问
    修改完成后 保存并退出(esc后 wq)(修改指令 vi 文件(在当前文件夹直接catalina.sh 否则需要加上全路径))

然后关闭tomcat,同目录下 shutdown.sh 或者 shutdown.bat 具体和上面一样看环境

然后重启
linux下
./catalina.sh jpda start

windows
catalina.bat
文件内容不一样,大概是这个
在这里插入图片描述

IDEA开启并连接远程调试端口(几乎开启方式都是一致的)方式一

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后点击 Apply 或者 OK即可
在这里插入图片描述
点击启动debug
在这里插入图片描述
出现
在这里插入图片描述
且IDEA左下方没有弹出其他警告,则视为连接线上环境成功
加上断点后即可调试

服务端配置修改方式二

同样修改 catalina.sh
在该文件的空白处添加

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=xxx.xxx.xx.xx:16701,suspend=n,server=y"

需要修改的地方为 address= 的地方 需要修改为tomcat所在IP 后面的端口只要不是已被占用的就可以,可自定义
文件保存并修改

然后使用 catalina.sh 的方式启动tomcat

sh catalina.sh start

IDEA本地开启远端调试方式二

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后点击OK
在这里插入图片描述
开启后同样与方式一相同 加入断点后可以调试

服务端配置修改方式三

参考文章连接

windows
修改 startup.bat 文件 在最前面加入

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

必须都在一行, - 后无空格 -前有空格
然后启动 startup.bat

在这里插入图片描述
在这里插入图片描述
打开浏览器访问在第1步部署的web应用,访问index.jsp,使得程序进入相应的断点就可以了。
不需要调试的时候点击断开,需要调试的时候再点击debug

自我实践

在我的环境中无法修改tomcat中的配置参数,所以在项目的环境中添加了环境变量

JAVA_OPTS          -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18003

此处18003为在应用内部开启的新端口用于调试,然后在该环境中,我对应这个内部端口对外开启了一个外部端口16701,然后使用上方开启IDEA远端调试的方式,IP为线上环境,端口为对外的16701,调试后同样成功。

注意事项

可能会遇到防火墙的情况,导致访问不通,需要关闭或者开放对应端口

总结

对外开启线上调试总的来说就是在应用内部开启调试用的端口,然后对外开放,外部连接的时候也采用连接远端接口请求的方式对接,然后实现两边的打通。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值