IntelliJ IDEA服务器远程调试报Connection refused

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IntelliJ IDEA服务器远程调试报Connection refused相关的知识,希望对你有一定的参考价值。

参考技术A 在本机进行开发用tomcat部署时我们可能会在tomcat/bin/catalina.sh配置如下debug参数进行调试:

但是在远程服务器上同样的配置却在启动调试时报错:

检查Remote配置:

IP和端口号都没问题但是"Connection refused",于是我们检查服务器16808端口情况:

可见当前16808端口服务被绑定了回环地址,外部无法访问,说明JAVA_OPT里address如果不指定ip会默认绑定到本机,如果是要提供远程调试的服务器上的工程,就需要指定当前服务器地址才行,问题于是解决。

[JavaWeb]_[初级]_[使用IntelliJ IDEA进行远程Tomcat调试]

场景

  1. 在开发JavaWeb程序时, 正式环境上部署的服务器往往都是tomcat应用服务器. 那么如果需要进行调试网站的访问代码时,如何调试?

说明

  1. 在使用jfinal开发网站时,可以使用它自带的undertow嵌入式应用服务器像本地代码一样调试。但是部署到应用服务器总是得使用一个稳定,资料丰富,可定制的tomcat来运行网站更可靠。因此就会出现使用使用undertow开发,而正式部署上用tomcat的情况.

  2. 使用IntelliJ IDEA Community 2021.1.2版本可能会少那么些集成的收费功能,比如Tomcat远程调试集成。所幸IntelliJ还保留了Remote JVM Debug的运行选项, 让我们可以通过JPDA(Java Platform Debugger Architecture)方式来调试远程的(非同一个进程的)JVM程序。

  3. tomcatcatalina.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.

创建调试步骤

  1. 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:

  2. 命令行进入tomcatbin目录,输入catalina.bat jpda start启动tomcat.

  3. IntelliJ的工具栏,选好刚才创建的运行实例名称, 点击调试按钮, 如果成功会出现以下的提示。之后就是通常的设置断点,在浏览器输入url会在IntelliJ里停在断点处。

    Connected to the target VM, address: 'localhost:8000', transport: 'socket'
    

参考

  1. Intellij idea远程debug连接tomcat

以上是关于IntelliJ IDEA服务器远程调试报Connection refused的主要内容,如果未能解决你的问题,请参考以下文章

Idea IntelliJ远程调试教程

Intellij IDEA远程调试java控制台程序

使用 IntelliJ IDEA 远程调试 Tomcat

图文并茂教你学会使用 IntelliJ IDEA 进行远程调试

IntelliJ IDEA远程调试的几种方式

如何使用 Rhino 实现用于远程 javascript 调试的 intelliJ IDEA 插件?