Класс JMXConnectorServerFactory
public class JMXConnectorServerFactory extends Object
Фабрика для создания серверов подключений API JMX. Экземпляры этого класса отсутствуют.
Каждый сервер подключений создается экземпляром 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 — новый для чтения 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 |
Создает сервер подключений по заданному адресу. |
Подробное описание полей
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. Ключи в этом map должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимоеenvironmentэтим вызовом не изменяется. -
mbeanServer- сервер MBean, к которому подключен этот сервер соединений. Null, если этот сервер соединений будет подключён к серверу MBean путём регистрации в нём. - Возвращает:
- объект
JMXConnectorServerпредставляющий новый сервер соединений. Каждый успешный вызов этого метода порождает другой объект. - Исключения:
-
NullPointerException- еслиserviceURLравно null. -
IOException- если сервер соединений не может быть создан из-за проблемы с коммуникацией. -
MalformedURLException- если нет поставщика для протокола вserviceURL. -
JMXProviderException- если есть поставщик для протокола вserviceURL, но он не может быть использован по какой-либо причине.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/remote/JMXConnectorServerFactory.html