Класс JMX
- java.lang.Object
-
- javax.management.JMX
public class JMX extends Object
Статические методы из API JMX. Экземпляры этого класса отсутствуют.
- Since:
- 1.6
Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
static String | DEFAULT_VALUE_FIELD | Имя поля |
static String | IMMUTABLE_INFO_FIELD | Имя поля |
static String | INTERFACE_CLASS_NAME_FIELD | Имя поля |
static String | LEGAL_VALUES_FIELD | Имя поля |
static String | MAX_VALUE_FIELD | Имя поля |
static String | MIN_VALUE_FIELD | Имя поля |
static String | MXBEAN_FIELD | Имя поля |
static String | OPEN_TYPE_FIELD | Имя поля |
static String | ORIGINAL_TYPE_FIELD | Имя поля |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static boolean | isMXBeanInterface(Class<?> interfaceClass) | Проверка, является ли интерфейс интерфейсом MXBean. |
static <T> T | newMBeanProxy(MBeanServerConnection connection,
ObjectName objectName,
Class<T> interfaceClass) | Создание прокси для стандартного MBean в локальном или удалённом MBean Server. |
static <T> T | newMBeanProxy(MBeanServerConnection connection,
ObjectName objectName,
Class<T> interfaceClass,
boolean notificationEmitter) | Создание прокси для стандартного MBean в локальном или удалённом MBean Server, который также может поддерживать методы |
static <T> T | newMXBeanProxy(MBeanServerConnection connection,
ObjectName objectName,
Class<T> interfaceClass) | Создание прокси для MXBean в локальном или удалённом MBean Server. |
static <T> T | newMXBeanProxy(MBeanServerConnection connection,
ObjectName objectName,
Class<T> interfaceClass,
boolean notificationEmitter) | Создание прокси для MXBean в локальном или удалённом MBean Server, который также может поддерживать методы |
Методы, унаследованные от класса java.lang.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(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.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(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.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, если он public, аннотирован @MXBean или @MXBean(true) или если у него нет аннотации @MXBean и его имя заканчивается на "MXBean".
- Параметры:
-
interfaceClass- Кандидат-интерфейс. - Возвращает:
- true, если
interfaceClassявляетсяcompliant MXBean interface - Исключения:
-
NullPointerException- еслиinterfaceClassимеет значение null.
© 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/JMX.html