Класс 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. Связанным с ним значением является загрузчик классов контекста вызывающего потока.
- Начиная с версии:
- 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, 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://docs.oracle.com/en/java/javase/25/docs/api/java.management/javax/management/remote/JMXConnectorServerFactory.html