1

我正在尝试使用 Oracle Java Mission control 分析 Java Spring 应用程序。我将 JVM 连接配置为:localhost:7091 并且我使用java -Dcom.sun.management.jmxremote.rmi.port=7091 -jar app.jar.

当我尝试启动飞行记录器时,我收到一条错误消息。

Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: 
    java.net.ConnectException: Connection refused: connect]
Could not connect to a JVM at service:jmx:rmi:///jndi/rmi://localhost:7091/jmxrmi. Make sure one is running and that you are using the correct protocol in the Service URL.

有谁知道该错误的原因可能是什么?

4

2 回答 2

2

您可以尝试使用自动发现。然后连接将自动显示在 JMC

-Dcom.sun.management.jmxremote.autodiscovery=true

您还可以命名连接,以便轻松识别它。

-Dcom.sun.management.jdp.name=应用程序

并禁用安全性

-Dcom.sun.management.jmxremote.authenticate=false

-Dcom.sun.management.jmxremote.ssl=false

于 2014-09-01T19:37:35.553 回答
1

我有这个问题。我已经在 Windows Server 2016 上安装了 JDK 10。使用 JMC 和 JVM,我希望在同一台服务器上进行监控。

上线时,我们将 IP 从临时 IP 切换为实时 IP。但是,江铃解析localhost到原来的IP。此外,在指定服务器的当前 IP 时,JMC 将其解析为原始 IP。

添加-Djava.rmi.server.hostname=localhost到我想要监控的 Java 进程中,解决了这个问题。

但是,我仍然想知道为什么 JMC(或 RMI)仍然无法正确解析。

于 2019-02-18T06:50:01.520 回答