Элемент управления полетом Java: бросает регистратор полетов: javax.naming.ServiceUnavailableException

Я пытаюсь профилировать приложение Java Spring с помощью элемента управления Oracle Java Mission. У меня есть соединение 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.

Кто-нибудь знает, что может быть причиной этой ошибки?

1 ответ

Вы можете попробовать использовать автоматическое обнаружение. Тогда соединение будет автоматически отображаться в JMC

-Dcom.sun.management.jmxremote.autodiscovery = верно

Вы можете также назвать соединение, чтобы вы могли легко его идентифицировать.

-Dcom.sun.management.jdp.name = приложение

и отключить безопасность

-Dcom.sun.management.jmxremote.authenticate= ложь

-Dcom.sun.management.jmxremote.ssl= ложь

У меня была эта проблема. Я установил JDK 10 на Windows Server 2016. С помощью JMC и JVM я хотел осуществлять мониторинг на одном сервере.

При запуске мы переключили IP с временного IP на действующий IP. Тем не менее, JMC решил localhost на оригинальный IP. Также при указании текущего IP-адреса сервера JMC разрешил его до исходного IP-адреса.

Добавление -Djava.rmi.server.hostname=localhost к процессу Java, который я хотел контролировать, решил проблему.

Однако мне все равно будет интересно узнать, почему JMC (или RMI) по-прежнему разрешается неправильно.

Другие вопросы по тегам