Класс 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, представляет собой новый неизменяемый 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. Ключи в этой карте должны быть строками. Соответствующий тип каждого связанного значения зависит от атрибута. Содержимое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