Класс 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 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, 2025, 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/25/docs/api/java.management/javax/management/remote/JMXConnectorFactory.html