Spec-Zone.ru › OpenJDK 8

Класс 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, если его нет. Реализация может выбрать другие способы поиска поставщиков. Например, она может поддерживать конвенции JAR для поставщиков услуг, где интерфейс службы — JMXConnectorServerProvider.

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

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

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

Since:
1.5

Поля

Модификатор и тип Поле и описание
static String DEFAULT_CLASS_LOADER

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

static String DEFAULT_CLASS_LOADER_NAME

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

static String PROTOCOL_PROVIDER_CLASS_LOADER

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

static 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, 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.

Spec-Zone.ru

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