[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]
Posted infoworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]相关的知识,希望对你有一定的参考价值。
场景
- 在开发
JavaWeb
程序时, 正式环境上部署的服务器往往都是tomcat
应用服务器. 那么如果需要进行调试网站的访问代码时,如何调试?
说明
-
在使用
jfinal
开发网站时,可以使用它自带的undertow
嵌入式应用服务器像本地代码一样调试。但是部署到应用服务器总是得使用一个稳定,资料丰富,可定制的tomcat
来运行网站更可靠。因此就会出现使用使用undertow
开发,而正式部署上用tomcat
的情况. -
使用
IntelliJ IDEA Community 2021.1.2
版本可能会少那么些集成的收费功能,比如Tomcat
远程调试集成。所幸IntelliJ
还保留了Remote JVM Debug
的运行选项, 让我们可以通过JPDA
(Java Platform Debugger Architecture)方式来调试远程的(非同一个进程的)JVM
程序。 -
tomcat
的catalina.bat
(Windows)或者catalina.sh
(*nx)提供了一个运行参数JPDA_ADDRESS
来启动这个远程调试端口,这个端口默认是8000
, 所以8000
端口被占用,那么可以修改catalina.bat
文件里的默认8000
端口。 接着需要命令行启动catalina.bat
时传入jpda start
两个参数。
$>catalina.bat jpda start
rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
rem command is executed. The default is localhost:8000.
创建调试步骤
-
在
IntelliJ
创建自定义的运行实例:- 菜单
Run
->Edit Configurations
->点击+
,选择Remote JVM Debug
。 - 设置
Host
:localhost
(或者远程调试的IP)Port
:前面介绍的JPDA
端口8000
. - 修改
Command line arguments....
里的端口为8000
.-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
OK
图1:
- 菜单
-
命令行进入
tomcat
的bin
目录,输入catalina.bat jpda start
启动tomcat
. -
在
IntelliJ
的工具栏,选好刚才创建的运行实例名称, 点击调试按钮, 如果成功会出现以下的提示。之后就是通常的设置断点,在浏览器输入url
会在IntelliJ
里停在断点处。Connected to the target VM, address: 'localhost:8000', transport: 'socket'
参考
以上是关于[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]的主要内容,如果未能解决你的问题,请参考以下文章
[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]
[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]
[JavaWeb]_[初级]_[对Jfinal框架的Service层进行单元测试]