Spec-Zone.ru › OpenJDK 25

Класс JMX

java.lang.Object
javax.management.JMX
public class JMX extends Object
Статические методы API JMX. Экземпляры этого класса отсутствуют.
С версии:
1.6

Краткое описание полей

Модификатор и тип Поле Описание
static final String DEFAULT_VALUE_FIELD
Имя поля defaultValue.
static final String IMMUTABLE_INFO_FIELD
Имя поля immutableInfo.
static final String INTERFACE_CLASS_NAME_FIELD
Имя поля interfaceClassName.
static final String LEGAL_VALUES_FIELD
Имя поля legalValues.
static final String MAX_VALUE_FIELD
Имя поля maxValue.
static final String MIN_VALUE_FIELD
Имя поля minValue.
static final String MXBEAN_FIELD
Имя поля mxbean.
static final String OPEN_TYPE_FIELD
Имя поля openType.
static final String ORIGINAL_TYPE_FIELD
Имя поля originalType.

Краткое описание методов

Модификатор и тип Метод Описание
static boolean isMXBeanInterface(Class<?> interfaceClass)
Проверяет, является ли интерфейс интерфейсом MXBean.
static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Создает прокси для стандартного MBean на локальном или удаленном сервере MBean.
static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Создает прокси для стандартного MBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter.
static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Создает прокси для MXBean на локальном или удаленном сервере MBean.
static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
Создает прокси для MXBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

DEFAULT_VALUE_FIELD

public static final String DEFAULT_VALUE_FIELD
Имя поля defaultValue.
См. также:
  • Значения константных полей

IMMUTABLE_INFO_FIELD

public static final String IMMUTABLE_INFO_FIELD
Имя поля immutableInfo.
См. также:
  • Значения константных полей

INTERFACE_CLASS_NAME_FIELD

public static final String INTERFACE_CLASS_NAME_FIELD
Имя поля interfaceClassName.
См. также:
  • Значения константных полей

LEGAL_VALUES_FIELD

public static final String LEGAL_VALUES_FIELD
Имя поля legalValues.
См. также:
  • Значения константных полей

MAX_VALUE_FIELD

public static final String MAX_VALUE_FIELD
Имя поля maxValue.
См. также:
  • Значения константных полей

MIN_VALUE_FIELD

public static final String MIN_VALUE_FIELD
Имя поля minValue.
См. также:
  • Значения константных полей

MXBEAN_FIELD

public static final String MXBEAN_FIELD
Имя поля mxbean.
См. также:
  • Значения константных полей

OPEN_TYPE_FIELD

public static final String OPEN_TYPE_FIELD
Имя поля openType.
См. также:
  • Значения константных полей

ORIGINAL_TYPE_FIELD

public static final String ORIGINAL_TYPE_FIELD
Имя поля originalType.
См. также:
  • Значения константных полей

Подробное описание методов

newMBeanProxy

public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)

Создает прокси для стандартного MBean на локальном или удаленном сервере MBean.

Если у вас есть сервер MBean mbs, содержащий MBean с именем ObjectName name, а интерфейс управления MBean описан интерфейсом Java MyMBean, вы можете создать прокси для MBean следующим образом:

MyMBean proxy = JMX.newMBeanProxy(mbs, name, MyMBean.class);

Предположим, например, что MyMBean выглядит так:

public interface MyMBean {
    public String getSomeAttribute();
    public void setSomeAttribute(String value);
    public void someOperation(String param1, int param2);
}

Затем можно выполнить следующее:

  • proxy.getSomeAttribute(), что приведет к вызову mbs.getAttribute(name, "SomeAttribute").
  • proxy.setSomeAttribute("whatever"), что приведет к вызову mbs.setAttribute(name, new Attribute("SomeAttribute", "whatever")).
  • proxy.someOperation("param1", 2), что будет преобразовано в вызов mbs.invoke(name, "someOperation", <etc>).

Объект, возвращаемый этим методом, является Proxy, чей InvocationHandler представляет собой MBeanServerInvocationHandler.

Этот метод эквивалентен newMBeanProxy(connection, objectName, interfaceClass, false).

Параметры типа:
T — позволяет компилятору определить, что если параметр interfaceClass имеет тип MyMBean.class, например, то возвращаемый тип — MyMBean.
Параметры:
connection — сервер MBean, которому будут перенаправляться вызовы.
objectName — имя MBean на сервере connection, которому будут перенаправляться вызовы.
interfaceClass — интерфейс управления, предоставляемый MBean и также реализуемый возвращаемым прокси.
Возвращает:
новый экземпляр прокси.
Вызывает исключение:
IllegalArgumentException — если interfaceClass не является совместимым интерфейсом MBean

newMBeanProxy

public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)

Создает прокси для стандартного MBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter.

Этот метод работает так же, как newMBeanProxy(MBeanServerConnection, ObjectName, Class), но, кроме того, если notificationEmitter имеет значение true, предполагается, что MBean является NotificationBroadcaster или NotificationEmitter, и возвращаемый прокси будет реализовывать NotificationEmitter наряду с interfaceClass. Вызов NotificationBroadcaster.addNotificationListener(NotificationListener, NotificationFilter, Object) для прокси приведет к вызову MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object); аналогично обрабатываются вызовы других методов NotificationBroadcaster и NotificationEmitter.

Параметры типа:
T — позволяет компилятору определить, что если параметр interfaceClass имеет тип MyMBean.class, например, то возвращаемый тип — MyMBean.
Параметры:
connection — сервер MBean, которому будут перенаправляться вызовы.
objectName — имя MBean на сервере connection, которому будут перенаправляться вызовы.
interfaceClass — интерфейс управления, предоставляемый MBean и также реализуемый возвращаемым прокси.
notificationEmitter — заставляет возвращаемый прокси реализовывать NotificationEmitter, перенаправляя его методы через connection.
Возвращает:
новый экземпляр прокси.
Вызывает исключение:
IllegalArgumentException — если interfaceClass не является совместимым интерфейсом MBean

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
Создает прокси для MXBean на локальном или удаленном сервере MBean.

Если у вас есть сервер MBean mbs, содержащий MXBean с именем ObjectName name, а интерфейс управления MXBean описан интерфейсом Java MyMXBean, вы можете создать прокси для MXBean следующим образом:

MyMXBean proxy = JMX.newMXBeanProxy(mbs, name, MyMXBean.class);

Предположим, например, что MyMXBean выглядит так:

public interface MyMXBean {
    public String getSimpleAttribute();
    public void setSimpleAttribute(String value);
    public MemoryUsage getMappedAttribute();
    public void setMappedAttribute(MemoryUsage memoryUsage);
    public MemoryUsage someOperation(String param1, MemoryUsage param2);
}

Тогда:

  • proxy.getSimpleAttribute() приведет к вызову mbs.getAttribute(name, "SimpleAttribute").

  • proxy.setSimpleAttribute("whatever") приведет к вызову mbs.setAttribute(name, new Attribute("SimpleAttribute", "whatever")).

    Поскольку String является простым типом в смысле SimpleType, в контексте MXBean он не преобразуется. Прокси MXBean работает так же, как прокси стандартного MBean (см. newMBeanProxy) для атрибута SimpleAttribute.

  • proxy.getMappedAttribute() приведет к вызову mbs.getAttribute("MappedAttribute"). Согласно правилам преобразования MXBean фактическим типом атрибута MappedAttribute будет CompositeData; именно его вернет вызов mbs.getAttribute. Затем прокси преобразует CompositeData обратно в ожидаемый тип MemoryUsage, используя правила преобразования MXBean.

  • Аналогично, proxy.setMappedAttribute(memoryUsage) преобразует аргумент MemoryUsage в CompositeData перед вызовом mbs.setAttribute.

  • proxy.someOperation("whatever", memoryUsage) преобразует аргумент MemoryUsage в CompositeData и вызывает mbs.invoke. Значение, возвращаемое mbs.invoke, также будет иметь тип CompositeData, и прокси преобразует его в ожидаемый тип MemoryUsage, используя правила преобразования MXBean.

Объект, возвращаемый этим методом, является Proxy, чей InvocationHandler представляет собой MBeanServerInvocationHandler.

Этот метод эквивалентен newMXBeanProxy(connection, objectName, interfaceClass, false).

Параметры типа:
T — позволяет компилятору определить, что если параметр interfaceClass имеет тип MyMXBean.class, например, то возвращаемый тип — MyMXBean.
Параметры:
connection — сервер MBean, которому будут перенаправляться вызовы.
objectName — имя MBean на сервере connection, которому будут перенаправляться вызовы.
interfaceClass — интерфейс MXBean, который также будет реализован возвращаемым прокси.
Возвращает:
новый экземпляр прокси.
Вызывает исключение:
IllegalArgumentException — если interfaceClass не является compliant MXBean interface

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)

Создает прокси для MXBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter.

Этот метод работает так же, как newMXBeanProxy(MBeanServerConnection, ObjectName, Class), но, кроме того, если notificationEmitter имеет значение true, предполагается, что MXBean является NotificationBroadcaster или NotificationEmitter, и возвращаемый прокси будет реализовывать NotificationEmitter наряду с interfaceClass. Вызов NotificationBroadcaster.addNotificationListener(NotificationListener, NotificationFilter, Object) для прокси приведет к вызову MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object); аналогично обрабатываются вызовы других методов NotificationBroadcaster и NotificationEmitter.

Параметры типа:
T — позволяет компилятору определить, что если параметр interfaceClass имеет тип MyMXBean.class, например, то возвращаемый тип — MyMXBean.
Параметры:
connection — сервер MBean, которому будут перенаправляться вызовы.
objectName — имя MBean на сервере connection, которому будут перенаправляться вызовы.
interfaceClass — интерфейс MXBean, который также будет реализован возвращаемым прокси.
notificationEmitter — заставляет возвращаемый прокси реализовывать NotificationEmitter, перенаправляя его методы через connection.
Возвращает:
новый экземпляр прокси.
Вызывает исключение:
IllegalArgumentException — если interfaceClass не является compliant MXBean interface

isMXBeanInterface

public static boolean isMXBeanInterface(Class<?> interfaceClass)

Проверяет, является ли интерфейс интерфейсом MXBean. Интерфейс является интерфейсом MXBean, если он общедоступен и аннотирован @MXBean или @MXBean(true) либо если у него нет аннотации @MXBean и его имя заканчивается на "MXBean".

Параметры:
interfaceClass — проверяемый интерфейс.
Возвращает:
true, если interfaceClass является compliant MXBean interface
Вызывает исключение:
NullPointerException — если interfaceClass равен null.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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/JMX.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API