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 项目,编写测试代码,创建 JavaWeb 项目,编写调试代码。此处将构建一个 Servlet 3.0 应用,并编写一个 Filter(过滤器),该过滤器的作用仅是用来设置程序断点。

利用 Maven ArcheType 快速构建 JavaWeb 应用

 

配置、编写调试代码(Fliter)

 

修 改 Tomcat JVM 启动参数

修 改 Tomcat JVM 启动参数,开启远程调试,编辑 Tomcat Catalina.bat 启动文件,添加 JVM 启动参数,设置远程调试服务模式和端口信息。

修改 catalina.bat 启动参数

 

Idea  创建远程调试链接

 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 服务器的配置也有少许不同,但是修改过程,配置参数几乎一致,若有需要,可自行查阅相关资料。当然也可以联系我,我们一起讨论。本文的介绍的内容偏向于实际操作,更多理论和细节内容没有介绍。若你有任何疑惑,当然也可以联系我,我们一起讨论。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章