Класс 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, если такого нет. Реализация может выбрать другие способы поиска поставщиков. Например, она может поддерживать поставщиков услуг, где интерфейс службы — JMXConnectorProvider.
Каждая реализация должна поддерживать протокол RMI-соединения с транспортным средством RMI по умолчанию, заданным строкой rmi.
После того, как поставщик найден, результат метода newJMXConnector — это результат вызова newJMXConnector на поставщике.
Параметр Map , переданный методу JMXConnectorProvider , представляет собой новый неизменяемый Map , содержащий все записи из параметра environment метода JMXConnectorFactory.newJMXConnector, если такой был. Кроме того, если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment , он добавляется в новый неизменяемый Map. Соответствующее значение — контекстный загрузчик классов вызывающей нити.
- С момента:
- 1.5
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
DEFAULT_CLASS_LOADER |
Имя атрибута, задающего загрузчик классов по умолчанию. |
static final String |
PROTOCOL_PROVIDER_CLASS_LOADER |
Имя атрибута, задающего загрузчик классов для загрузки поставщиков протоколов. |
static final String |
PROTOCOL_PROVIDER_PACKAGES |
Имя атрибута, задающего пакеты поставщиков, которые просматриваются при поиске обработчика для протокола. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static JMXConnector |
connect |
Создаёт соединение с сервером соединений по заданному адресу. |
static JMXConnector |
connect |
Создаёт соединение с сервером соединений по заданному адресу. |
static JMXConnector |
newJMXConnector |
Создаёт клиента соединений для сервера соединений по заданному адресу. |
Подробное описание полей
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, 2023, 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/21/docs/api/java.management/javax/management/remote/JMXConnectorFactory.html