Класс JMXConnectorServerFactory
- java.lang.Object
-
- javax.management.remote.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 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.management/javax/management/remote/JMXConnectorServerFactory.html