Spec-Zone.ru › OpenJDK 24

Класс JMXConnectorServerFactory

java.lang.Object
javax.management.remote.JMXConnectorServerFactory
public class JMXConnectorServerFactory extends Object

Фабрика для создания серверов подключения JMX API. Экземпляров этого класса нет.

Каждый сервер подключения создается экземпляром JMXConnectorServerProvider. Этот экземпляр находится следующим образом. Предположим, заданный JMXServiceURL выглядит как "service:jmx:protocol:remainder". Тогда фабрика попытается найти соответствующий JMXConnectorServerProvider для protocol. Каждая встреча символа + или - в protocol заменяется на . или _ соответственно.

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

  1. Если параметр environment для newJMXConnectorServer содержит ключ jmx.remote.protocol.provider.pkgs, то соответствующее значение — список пакетов поставщика.
  2. В противном случае, если системная переменная jmx.remote.protocol.provider.pkgs существует, то её значение — список пакетов поставщика.
  3. В противном случае, списка пакетов поставщика нет.

Список пакетов поставщика — строка, которая интерпретируется как список непустых имён Java пакетов, разделённых вертикальной чертой (|). Если строка пуста, то и список пакетов поставщика пуст. Если список пакетов поставщика не является строкой или содержит элемент, являющийся пустой строкой, выбрасывается JMXProviderException.

Если список пакетов поставщика существует и не пуст, то для каждого элемента pkg списка, фабрика попытается загрузить класс

pkg.protocol.ServerProvider

Если параметр environment для newJMXConnectorServer содержит ключ jmx.remote.protocol.provider.class.loader, то соответствующее значение — загрузчик классов для загрузки поставщика. Если соответствующее значение не является экземпляром ClassLoader, выбрасывается IllegalArgumentException.

Если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment, используется контекстный загрузчик классов вызывающей потока.

Если попытка загрузки этого класса приводит к ClassNotFoundException, поиск обработчика продолжается с следующим элементом списка.

В противном случае, проблема с найденным поставщиком сигнализируется JMXProviderException, чьё cause указывает на основную ошибку, как следует:

  • если попытка загрузки класса приводит к ошибке, отличной от ClassNotFoundException, то это причина;
  • если Class.newInstance() для класса приводит к ошибке, то это причина.

Если поставщик не найден по вышеуказанным шагам, включая случай по умолчанию, когда нет списка пакетов поставщика, то реализация использует собственного поставщика для protocol, или же она выбросит MalformedURLException, если такого нет. Реализация может выбрать поиск поставщиков другими способами. Например, она может поддерживать поставщиков услуг, где интерфейс службы — JMXConnectorServerProvider.

Каждая реализация должна поддерживать протокол подключения RMI с транспортным средством RMI по умолчанию, заданным строкой rmi.

После того, как поставщик найден, результат метода newJMXConnectorServer — результат вызова newJMXConnectorServer на поставщике.

Параметр Map, переданный методу JMXConnectorServerProvider, представляет собой новый неизменяемый Map, содержащий все записи, которые были в параметре environment метода JMXConnectorServerFactory.newJMXConnectorServer, если таковой был. Кроме того, если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment, он добавляется в новый неизменяемый Map. Соответствующее значение — контекстный загрузчик классов вызывающей потока.

Since:
1.5

Краткое описание полей

Модификатор и тип Поле Описание
static final String DEFAULT_CLASS_LOADER
Имя атрибута, задающего загрузчик классов по умолчанию.
static final String DEFAULT_CLASS_LOADER_NAME
Имя атрибута, задающего имя MBean загрузчика классов по умолчанию.
static final String PROTOCOL_PROVIDER_CLASS_LOADER
Имя атрибута, задающего загрузчик классов для загрузки поставщиков протокола.
static final String PROTOCOL_PROVIDER_PACKAGES
Имя атрибута, задающего пакеты поставщиков, которые проверяются при поиске обработчика для протокола.

Краткое описание методов

Модификатор и тип Метод Описание
static JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer)
Создаёт сервер подключения по заданному адресу.

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

DEFAULT_CLASS_LOADER

public static final String DEFAULT_CLASS_LOADER

Имя атрибута, определяющего стандартный загрузчик классов. Этот загрузчик используется для десериализации объектов в запросах, полученных от клиента, возможно, после консультации со специфическим для MBean загрузчиком классов. Значение, связанное с этим атрибутом, является экземпляром ClassLoader.

См. также:
  • Постоянные значения полей

DEFAULT_CLASS_LOADER_NAME

public static final String DEFAULT_CLASS_LOADER_NAME

Имя атрибута, определяющего имя стандартного загрузчика классов MBean. Этот загрузчик используется для десериализации объектов в запросах, полученных от клиента, возможно, после консультации со специфическим для MBean загрузчиком классов. Значение, связанное с этим атрибутом, является экземпляром ObjectName.

См. также:
  • Постоянные значения полей

PROTOCOL_PROVIDER_PACKAGES

public static final String PROTOCOL_PROVIDER_PACKAGES

Имя атрибута, определяющего пакеты поставщиков, которые проверяются при поиске обработчика протокола. Значение, связанное с этим атрибутом, представляет собой строку с именами пакетов, разделенных вертикальными чертами (|).

См. также:
  • Постоянные значения полей

PROTOCOL_PROVIDER_CLASS_LOADER

public static final String PROTOCOL_PROVIDER_CLASS_LOADER

Имя атрибута, определяющего загрузчик классов для загрузки поставщиков протоколов. Значение, связанное с этим атрибутом, является экземпляром ClassLoader.

См. также:
  • Постоянные значения полей

Подробное описание методов

newJMXConnectorServer

public static JMXConnectorServer newJMXConnectorServer(JMXServiceURL serviceURL, Map<String,?> environment, MBeanServer mbeanServer) throws IOException

Создаёт сервер соединений по указанному адресу. Результирующий сервер не запускается до тех пор, пока не будет вызван его метод start.

Параметры:
serviceURL - адрес нового сервера соединений. Фактический адрес нового сервера соединений, возвращаемый его методом getAddress, не обязательно будет точно таким же. Например, он может включать номер порта, если исходный адрес его не содержал.
environment - набор атрибутов для управления поведением нового сервера соединений. Этот параметр может быть null. Ключи в этой карте должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимое environment не изменяется этим вызовом.
mbeanServer - сервер MBean, к которому подключён этот сервер соединений. Null, если этот сервер соединений будет подключён к серверу MBean, зарегистрировавшись в нём.
Возвращает:
JMXConnectorServer представляющий новый сервер соединений. Каждый успешный вызов этого метода производит другой объект.
Исключения:
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://download.java.net/java/early_access/jdk24/docs/api/java.management/javax/management/remote/JMXConnectorServerFactory.html

Spec-Zone.ru

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