IntelliJ IDEA 之 远程调试篇
我的工作困扰
应用部署依赖太多外部环境,本地部署困难重重,问题追踪依赖于日志文件,烦人!某些功能本机正常运行,提交测试或者上线却表现欠佳,烦人!某些功能较为复杂,正常运行需要人为制造大量测试数据,烦人!
重拾小时候的幸福
多次遇到上述问题之后,开始变得惶恐和不安,难道就无法摆脱这种困境吗?难道JVM (Java Virtual Machine)无法通过网络传输完成远程调试吗?就在我将[远程调试]四个字填入搜索框之后,阳光甚好,我似乎找到了小时候吃冰棍般的满足与幸福。
题外话
[大力水手]牌子的冰棍是我最爱,就是太贵,记忆中只吃过两次。如果还有机会遇到它的话,指定一次买两根,吃一根,再吃一根。
主要内容
+ 演示环境
+ 创建 JavaWeb 项目,编写测试代码
+ 修改 Tomcat JVM 启动参数,开启远程调试
+ Idea 创建远程调试链接,启动调试
+ 附件和注意
演示环境,介绍本次远程调试所依赖的软件环境,即 IntelliJ IDEA / Apache Tomcat 版本
+ Apache Tomcat :7.0.55
+ IntelliJ IDEA :2018.2.1 (Ultimate Edition)
+ Windows 10 家庭中文版
创建 JavaWeb 项目,编写测试代码,创建 JavaWeb 项目,编写调试代码。此处将构建一个 Servlet 3.0 应用,并编写一个 Filter(过滤器),该过滤器的作用仅是用来设置程序断点。
利用 Maven ArcheType 快速构建 JavaWeb 应用 配置、编写调试代码(Fliter)
修改 Tomcat JVM 启动参数,开启远程调试,编辑 Tomcat Catalina.bat 启动文件,添加 JVM 启动参数,设置远程调试服务模式和端口信息。
修改 catalina.bat 启动参数
Idea 创建远程调试链接,启动调试,部署上面构建的 JavaWeb 项目 Deuger.war 至 Tomcat 服务器,并创建远程调试,设定远程机器 IP (本文调试的服务器在本地,所以 IP 地址为本地回环地址) 和调试端口(Catalina.bat 中设置的端口号)
部署 Debuger 至服务器 Idea设置远程调试
远程调试操作,可以有效解决[ 我的工作困扰 ]中的前两项,因为在 Debug 模式下,问题会变得显而易见。而对于测试数据问题,可以通过 Debug 修改任何变量值,调整程序运行方向。
debug模式中模拟测试数据
附件和注意
附件和注意,包括上述 Gif 图片中的配置信息和测试代码片段,若有任何未提及到的内容,请联系我。
附件:
Catalina.bat 设置:SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
注意:
不同平台下,配置稍有不同。例如 Linux 下应该修改 Catalina.sh 文件;WebLogic,WebSphere 服务器的配置也有少许不同,但是修改过程,配置参数几乎一致,若有需要,可自行查阅相关资料。当然也可以联系我,我们一起讨论。本文的介绍的内容偏向于实际操作,更多理论和细节内容没有介绍。若你有任何疑惑,当然也可以联系我,我们一起讨论。
微信公众号
文章内容大多数都是从我的公众号搬过来的,内容可能没有公众号更新的及时,下面是我的公号,欢迎来访。
网友评论