Класс JMXConnectorFactory
- java.lang.Object
-
- javax.management.remote.JMXConnectorFactory
public class JMXConnectorFactory extends Object
Фабрика для создания клиентов-соединителей API JMX. Экземпляров этого класса нет.
Соединения обычно устанавливаются с помощью метода 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. Реализация может выбрать другие способы поиска поставщиков. Например, она может поддерживать поставщиков услуг, где интерфейс услуги — 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