Spec-Zone.ru › OpenJDK 27

Класс 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 заменяется соответственно на . или _.

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

  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 final String DEFAULT_CLASS_LOADER
Имя атрибута, задающего загрузчик классов по умолчанию.
static final String PROTOCOL_PROVIDER_CLASS_LOADER
Имя атрибута, задающего загрузчик классов для загрузки поставщиков протоколов.
static final 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)
Создает клиент коннектора для сервера коннектора по указанному адресу.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API планируется удалить в будущей версии.
Финализация устарела и планируется к удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени.

Подробное описание полей

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 есть поставщик, но по какой-либо причине его нельзя использовать.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API