Класс JMXConnectorServerFactory
public class JMXConnectorServerFactory extends Object
Фабрика для создания серверов подключения к JMX API. Экземпляров этого класса не существует.
Каждый сервер подключения создаётся экземпляром JMXConnectorServerProvider. Этот экземпляр находится следующим образом. Предположим, что заданный JMXServiceURL выглядит как "service:jmx:protocol:remainder". Тогда фабрика попытается найти соответствующий JMXConnectorServerProvider для protocol. Каждая встреча символа + или - в protocol заменяется на . или _, соответственно.
Перечисляется список пакетов поставщиков следующим образом:
- Если параметр
environmentметодаnewJMXConnectorServerсодержит ключjmx.remote.protocol.provider.pkgs, то соответствующее значение является списком пакетов поставщиков. - В противном случае, если существует системная переменная
jmx.remote.protocol.provider.pkgs, то её значение является списком пакетов поставщиков. - В противном случае, список пакетов поставщиков отсутствует.
Список пакетов поставщиков — это строка, интерпретируемая как список непустых имён 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 является новым read-only Map, который содержит все записи, которые были в параметре environment метода JMXConnectorServerFactory.newJMXConnectorServer, если таковой был. Дополнительно, если ключ jmx.remote.protocol.provider.class.loader отсутствует в параметре environment, он добавляется в новый read-only 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 |
Создаёт сервер подключения по заданному адресу. |
Подробное описание полей
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, 2021, 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/17/docs/api/java.management/javax/management/remote/JMXConnectorServerFactory.html