Класс JMXConnectorFactory
- java.lang.Object
-
- javax.management.remote.JMXConnectorFactory
public class JMXConnectorFactory extends Object
Фабрика для создания клиентов соединений JMX API. Экземпляров этого класса нет.
Соединения обычно создаются с помощью метода connect этого класса. Более продвинутые приложения могут разделять создание клиента соединения, используя newJMXConnector, и установление самого соединения, используя JMXConnector.connect(Map).
Каждый клиент создаётся экземпляром JMXConnectorProvider. Этот экземпляр находится следующим образом. Предположим, заданный JMXServiceURL выглядит как "service:jmx:protocol:remainder". Тогда фабрика попытается найти соответствующий JMXConnectorProvider для protocol. Каждый символ + или - в protocol заменяется на . или _, соответственно.
Перечень пакетов поставщиков ищется следующим образом:
- Если параметр
environmentметодаnewJMXConnectorсодержит ключjmx.remote.protocol.provider.pkgs, то соответствующее значение является списком пакетов поставщиков. - В противном случае, если существует системная переменная
jmx.remote.protocol.provider.pkgs, то её значение является списком пакетов поставщиков. - В противном случае, список пакетов поставщиков отсутствует.
Список пакетов поставщиков — это строка, которая интерпретируется как список непустых имён 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, если его нет. Реализация может выбрать поиск поставщиков иными способами. Например, она может поддерживать JAR-конвенции для поставщиков сервисов, где интерфейс сервиса — JMXConnectorProvider.
Каждая реализация должна поддерживать протокол соединения RMI с транспортным средством RMI по умолчанию, заданным строкой rmi. Реализация может дополнительно поддерживать протокол соединения RMI с транспортным средством RMI/IIOP, заданным строкой iiop.
После нахождения поставщика результатом метода 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. Ключи в этом map должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимоеenvironmentэтим вызовом не изменяется. - Возвращает:
- объект
JMXConnector, представляющий вновь созданное соединение. Каждый успешный вызов этого метода создаёт другой объект. - Исключения:
-
NullPointerException— еслиserviceURLравно null. -
IOException— если подключение к клиенту-коннектору или само соединение невозможно из-за проблемы с коммуникацией. -
SecurityException— если подключение невозможно по соображениям безопасности.
newJMXConnector
public static JMXConnector newJMXConnector(JMXServiceURL serviceURL,
Map<String,?> environment)
throws IOException Создаёт клиент-коннектор для сервера-коннектора по заданному адресу. Полученный клиент не подключён до тех пор, пока не будет вызван его метод connect.
- Параметры:
-
serviceURL— адрес сервера-коннектора для подключения. -
environment— набор атрибутов, определяющих способ создания соединения. Этот параметр может быть null. Ключи в этом map должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимое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.