idea远程tomcat断点调试的注意事项

今天把写好的项目部署到云端环境,小bug不断,所以就需要使用idea通过remote tomcat部署到服务器端的tomcat进行断点调试。

基本步骤就不介绍了,网上很多这样的博客,比如这篇: 在 Idea 中配置远程 tomcat 并部署 ,但是要注意的是,该博客中提到的以下关于 CATALINA_OPTS 的配置

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

 

好像只能实现远程部署,并不能进行断点调试,至少我在调试过程中单独靠这个配置是不能捕获断点的,在查看了更多的博客之后,

看到了这一篇博客  idea连接远程tomcat  ,该博客中提到应做如下配置:

CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

 

其中jmxremote.port的端口默认是1099,可以更改为其他端口,但是防火墙要记得开放相应的端口(ps. 以上两段配置可以合并,在第一段的 "server=y" 后面追加一个空格,然后将第二段配置粘贴进去即可)

做完以上配置后,我在idea开始进行调试,但是idea报了一个 “Unable to connect to the xx.xx.xx.xx:1099”的错误,导致项目虽然成功远程部署,但是仍然不能调试

 

com.intellij.execution.ExecutionException: Unable to connect to the xx.xx.xx.xx:1099, reason:
java.rmi.ConnectException: Connection refused to host: xx.xx.xx.xx;
....

 

原因是 CATALINA_OPTS 中除了 jmxremote.port 以外还需要添加一个 jmxremote.rmi.port 的属性

-Dcom.sun.management.jmxremote.rmi.port=1099

 

该属性一般和 jmxremote.port 一致,全部添加完毕之后重启 tomcat ,通过idea将项目远程部署到服务器之后,成功捕获到断点

 

posted @ 2021-08-08 22:26  方德伟  阅读(1141)  评论(0编辑  收藏  举报