Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java任务控制:飞行记录器抛出:javax.naming.ServiceUnavailableException_Java_Profiling_Java Mission Control - Fatal编程技术网

Java任务控制:飞行记录器抛出:javax.naming.ServiceUnavailableException

Java任务控制:飞行记录器抛出:javax.naming.ServiceUnavailableException,java,profiling,java-mission-control,Java,Profiling,Java Mission Control,我正试图用OracleJava任务控制评测JavaSpring应用程序。 我将JVM连接配置为:localhost:7091 我用java-Dcom.sun.management.jmxremote.rmi.port=7091-jar-app.jar启动了这个应用程序 当我试图启动飞行记录器时,我收到一条错误消息 Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception

我正试图用OracleJava任务控制评测JavaSpring应用程序。 我将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.

有人知道该错误的原因吗?

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

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

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

-Dcom.sun.management.jdp.name=App

并禁用安全性

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

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


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

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


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


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

我知道这是一个老问题,但对于任何研究此问题的人来说,如果您将主机名从localhost(127.0.0.1)更改为外部ip地址(通常为192.168.X.X),它就可以工作。如果从另一台主机访问防火墙(ufw)和路由器,也要检查它们。将
-Djava.rmi.server.hostname=
添加到Java进程中解决了这个问题。