Java JMX连接失败,返回“0”;握手失败…应为JDWP握手“;

Java JMX连接失败,返回“0”;握手失败…应为JDWP握手“;,java,jmx,remote-debugging,jvisualvm,Java,Jmx,Remote Debugging,Jvisualvm,我正在尝试将VisualVM连接到远程JMX。IntelliJ可以轻松连接,但VisualVM在日志输出中出现以下故障: Listening for transport dt_socket at address: 5005 Debugger failed to attach: recv failed during handshake: Resource temporarily unavailable Debugger failed to attach: handshake failed - re

我正在尝试将VisualVM连接到远程JMX。IntelliJ可以轻松连接,但VisualVM在日志输出中出现以下故障:

Listening for transport dt_socket at address: 5005
Debugger failed to attach: recv failed during handshake: Resource temporarily unavailable
Debugger failed to attach: handshake failed - received >< - expected >JDWP-Handshake<

使用VisualVM 1.3.9。不知道为什么失败,为什么IntelliJ成功。我已尝试禁用SSL身份验证等。

在5005上侦听的套接字不是JMX侦听器,而是侦听器。因此,VisualVM将无法连接到该端口,这就是为什么您会看到握手失败的原因。

好的解决了大部分问题,但我在启动时启用了JMX并将其设置为端口…那么我在这里遗漏了什么?嗯。。。我相当确定调试端口是首先绑定的,因此JMX侦听器可能会在静默中失败,但是如果不查看您的配置,就不难说了。或也许JMX和jdwp绑定到不同接口上的同一端口?只是更新了我的命令行配置,将JMX端口更改为5006,仍然没有骰子,我可以将VisualVM连接到jstatd实例,虽然这解决了问题,但它是Gradle:
-XX:MaxPermSize=50g -XX:+HeapDumpOnOutOfMemoryError -Xmx50g -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=100.100.100.100 -Dcom.sun.management.jmxremote.port=5006 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false