Подтвердить что ты не робот

Как найти номер порта JMX по умолчанию?

Я запускаю приложение Java на Java 6 VM на удаленной Windows XP, на котором я могу запустить jvisualvm.exe для автоматического подключения к запущенному приложению.

Теперь мне нужно подключить это приложение с моего локального компьютера, но я не знаю номер порта JMX удаленного компьютера. Где я могу найти его? Или я должен перезапустить это приложение с некоторыми параметрами VM, чтобы указать номер порта?

После прочтения вопроса Как найти порт JMX на сервере, я выполнил команду на удаленном компьютере

netstat -apn

но ничего не получил.

4b9b3361

Ответ 1

Теперь мне нужно подключить это приложение с моего локального компьютера, но я не знаю номер порта JMX удаленного компьютера. Где я могу найти его? Или я должен перезапустить приложение с некоторыми параметрами виртуальной машины, чтобы указать номер порта?

По умолчанию JMX не публикуется на порте, если вы не укажете аргументы с этой страницы: Как активировать JMX...

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false

Если вы работаете, вы должны иметь доступ к любому из этих системных свойств, чтобы увидеть, были ли они установлены:

if (System.getProperty("com.sun.management.jmxremote") == null) {
    System.out.println("JMX remote is disabled");
} else [
    String portString = System.getProperty("com.sun.management.jmxremote.port");
    if (portString != null) {
        System.out.println("JMX running on port "
            + Integer.parseInt(portString));
    }
}

В зависимости от того, как подключен сервер, вам также может потребоваться указать следующий параметр. Как часть начального соединения JMX, jconsole подключается к порту RMI, чтобы определить, на каком порту работает сервер JMX. Когда вы изначально запускаете приложение с поддержкой JMX, оно просматривает собственное имя хоста, чтобы определить, какой адрес вернуть в этой начальной транзакции RMI. Если ваше имя хоста не находится в /etc/hosts или если оно имеет неверный адрес интерфейса, вы можете переопределить его следующим образом:

-Djava.rmi.server.hostname=<IP address>

Кроме того, мой пакет SimpleJMX позволяет вам определить и сервер JMX, и порт RMI, или настроить их оба на один и тот же порт. Вышеуказанный порт, определенный с помощью com.sun.management.jmxremote.port, фактически является портом RMI. Это сообщает клиенту, на каком порту работает сервер JMX.

Ответ 2

Удаленная JConsole

Добавьте следующие параметры в ваше Java-приложение и запустите его.

-Djava.rmi.server.hostname = DOMAIN_PUBLIC_URL -Dcom.sun.management.jmxremote.port = PORTNUMBER -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false

DOMAIN_PUBLIC_URL Как и ваш общедоступный адрес экземпляра PORTNUMBER 9955, запустите jconsole в вашей Ubuntu из команды терминала и перейдите к удаленному соединению, вставьте DOMAIN_PUBLIC_URL и PORT и подключите его без имени пользователя и пароля, как небезопасное соединение.

Убедитесь, что номер порта указан в экземпляре сервера AWS.