Класс JMXConnectorFactory

public class JMXConnectorFactory
extends Object

Фабрика для создания клиентов-соединителей API JMX. Экземпляров этого класса нет.

Соединения обычно устанавливаются с помощью метода connect этого класса. Более сложные приложения могут разделить создание клиента-соединителя, используя newJMXConnector, и установку самого соединения, используя JMXConnector.connect(Map).

Каждый клиент создаётся экземпляром JMXConnectorProvider. Этот экземпляр находится следующим образом. Предположим, заданный JMXServiceURL выглядит как "service:jmx:protocol:remainder". Тогда фабрика попытается найти соответствующий JMXConnectorProvider для protocol. Каждое вхождение символа + или - в protocol заменяется на . или _, соответственно.

Перечень пакетов поставщиков ищется следующим образом:

  1. Если параметр environment метода newJMXConnector содержит ключ jmx.remote.protocol.provider.pkgs, то соответствующее значение — перечень пакетов поставщиков.
  2. В противном случае, если существует системная переменная jmx.remote.protocol.provider.pkgs, то её значение — перечень пакетов поставщиков.
  3. В противном случае перечень пакетов поставщиков отсутствует.

Перечень пакетов поставщиков представляет собой строку, интерпретируемую как список непустых имён Java-пакетов, разделённых вертикальными чертами (|). Если строка пустая, то и перечень пакетов поставщиков пустой. Если перечень пакетов поставщиков не является строкой или содержит пустой элемент, выбрасывается исключение JMXProviderException.

Если перечень пакетов поставщиков существует и не пустой, то для каждого элемента pkg списка фабрика попытается загрузить класс

pkg.protocol.ClientProvider

Если параметр environment метода newJMXConnector содержит ключ jmx.remote.protocol.provider.class.loader, то соответствующее значение — загрузчик классов, используемый для загрузки поставщика. Если соответствующее значение не является экземпляром ClassLoader, выбрасывается исключение IllegalArgumentException.

Если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment, используется контекстный загрузчик классов вызывающей нити.

Если попытка загрузки этого класса приводит к ClassNotFoundException, поиск обработчика продолжается со следующим элементом списка.

В противном случае проблема с найденным поставщиком сигнализируется исключением JMXProviderException, у которого cause указывает на базовое исключение следующим образом:

  • если попытка загрузки класса приводит к исключению, отличному от ClassNotFoundException, то это причина;
  • если Class.newInstance() для класса приводит к исключению, то это причина.

Если поставщик не найден по вышеописанным шагам, включая случай по умолчанию, когда нет перечня пакетов поставщиков, то реализация использует собственного поставщика для protocol, или, если такового нет, выбросит MalformedURLException. Реализация может выбрать другие способы поиска поставщиков. Например, она может поддерживать поставщиков услуг, где интерфейс услуги — JMXConnectorProvider.

Каждая реализация должна поддерживать протокол соединителя RMI с транспортным средством RMI по умолчанию, заданным строкой rmi.

После того, как поставщик найден, результат метода newJMXConnector — результат вызова newJMXConnector на поставщике.

Параметр Map , передаваемый в метод JMXConnectorProvider , — новый неизменяемый Map , содержащий все записи, которые были в параметре environment метода JMXConnectorFactory.newJMXConnector, если таковой был. Кроме того, если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment , он добавляется в новый неизменяемый Map. Соответствующее значение — контекстный загрузчик классов вызывающей нити.

С момента:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static String DEFAULT_CLASS_LOADER

Имя атрибута, задающего загрузчик классов по умолчанию.

static String PROTOCOL_PROVIDER_CLASS_LOADER

Имя атрибута, задающего загрузчик классов для загрузки поставщиков протоколов.

static String PROTOCOL_PROVIDER_PACKAGES

Имя атрибута, задающего пакеты поставщиков, которые проверяются при поиске обработчика для протокола.

Краткое описание методов

Модификатор и тип Метод Описание
static JMXConnector connect​(JMXServiceURL serviceURL)

Создаёт соединение с сервером соединителя по указанному адресу.

static JMXConnector connect​(JMXServiceURL serviceURL, Map<String,​?> environment)

Создаёт соединение с сервером соединителя по указанному адресу.

static JMXConnector newJMXConnector​(JMXServiceURL serviceURL, Map<String,​?> environment)

Создаёт клиента-соединитель для сервера соединителя по указанному адресу.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Поля

DEFAULT_CLASS_LOADER

public static final String DEFAULT_CLASS_LOADER

Имя атрибута, определяющего стандартный загрузчик классов. Этот загрузчик используется для десериализации возвращаемых значений и исключений из удалённых MBeanServerConnection вызовов. Значение, связанное с этим атрибутом, является экземпляром ClassLoader.

См. также:
Значения константных полей

PROTOCOL_PROVIDER_PACKAGES

public static final String PROTOCOL_PROVIDER_PACKAGES

Имя атрибута, определяющего пакеты поставщиков, которые просматриваются при поиске обработчика протокола. Значение, связанное с этим атрибутом, представляет собой строку с именами пакетов, разделённых вертикальными чертами (|).

См. также:
Значения константных полей

PROTOCOL_PROVIDER_CLASS_LOADER

public static final String PROTOCOL_PROVIDER_CLASS_LOADER

Имя атрибута, определяющего загрузчик классов для загрузки поставщиков протоколов. Значение, связанное с этим атрибутом, является экземпляром ClassLoader.

См. также:
Значения константных полей

Методы

connect

public static JMXConnector connect(JMXServiceURL serviceURL)
                            throws IOException

Создаёт соединение с сервером-коннектором по заданному адресу.

Этот метод эквивалентен connect(serviceURL, null).

Параметры:
serviceURL - адрес сервера-коннектора для подключения.
Возвращает:
объект JMXConnector, для которого вызван метод connect.
Исключения:
NullPointerException - если serviceURL равно null.
IOException - если клиент-коннектор или соединение не могут быть созданы из-за проблемы с коммуникацией.
SecurityException - если соединение не может быть создано по соображениям безопасности.

connect

public static JMXConnector connect(JMXServiceURL serviceURL,
                                   Map<String,​?> environment)
                            throws IOException

Создаёт соединение с сервером-коннектором по заданному адресу.

Этот метод эквивалентен:

JMXConnector conn = JMXConnectorFactory.newJMXConnector(serviceURL,
                                                         environment);
 conn.connect(environment);
Параметры:
serviceURL - адрес сервера-коннектора для подключения.
environment - набор атрибутов для определения способа подключения. Этот параметр может быть null. Ключи в этом наборе должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимое environment не изменяется этим вызовом.
Возвращает:
объект JMXConnector представляющий новое подключение. Каждый успешный вызов этого метода создаёт новый объект.
Исключения:
NullPointerException - если serviceURL равно null.
IOException - если клиент-коннектор или соединение не могут быть созданы из-за проблемы с коммуникацией.
SecurityException - если соединение не может быть создано по соображениям безопасности.

newJMXConnector

public static JMXConnector newJMXConnector(JMXServiceURL serviceURL,
                                           Map<String,​?> environment)
                                    throws IOException

Создаёт клиента-коннектор для сервера-коннектора по заданному адресу. Результирующий клиент не подключён до тех пор, пока не будет вызван его метод connect.

Параметры:
serviceURL - адрес сервера-коннектора для подключения.
environment - набор атрибутов для определения способа подключения. Этот параметр может быть null. Ключи в этом наборе должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимое environment не изменяется этим вызовом.
Возвращает:
объект JMXConnector представляющий нового клиента-коннектора. Каждый успешный вызов этого метода создаёт новый объект.
Исключения:
NullPointerException - если serviceURL равно null.
IOException - если клиент-коннектор не может быть создан из-за проблемы с коммуникацией.
MalformedURLException - если нет поставщика для протокола в serviceURL.
JMXProviderException - если есть поставщик для протокола в serviceURL , но он не может быть использован по какой-либо причине.

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/remote/JMXConnectorFactory.html

Spec-Zone .ru
спецификации, руководства, описания, API