Класс JMX
public class JMX extends Object
- Since:
- 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 |
Проверка, является ли интерфейс интерфейсом MXBean. |
static <T> T |
newMBeanProxy |
Создание прокси для Standard MBean в локальном или удаленном сервере MBean. |
static <T> T |
newMBeanProxy |
Создание прокси для Standard MBean в локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter. |
static <T> T |
newMXBeanProxy |
Создание прокси для MXBean в локальном или удаленном сервере MBean. |
static <T> T |
newMXBeanProxy |
Создание прокси для MXBean в локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter. |
Подробное описание полей
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)
Создать прокси для Standard 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)
Создать прокси для Standard 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)
Если у вас есть сервер 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 ведет себя так же, как прокси Standard 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).
- Type Parameters:
-
T- позволяет компилятору знать, что если параметрinterfaceClassравен, например,MyMXBean.class, то возвращаемый тип являетсяMyMXBean. - Parameters:
-
connection- сервер MBean, на который будет перенаправляться запрос. -
objectName- имя MBean вconnectionна который будет перенаправляться запрос. -
interfaceClass- интерфейс MXBean, который также будет реализован возвращаемым прокси. - Returns:
- новый экземпляр прокси.
- Throws:
-
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.
- Type Parameters:
-
T- позволяет компилятору знать, что если параметрinterfaceClassравен, например,MyMXBean.class, то возвращаемый тип являетсяMyMXBean. - Parameters:
-
connection- сервер MBean, на который будет перенаправляться запрос. -
objectName- имя MBean вconnectionна который будет перенаправляться запрос. -
interfaceClass- интерфейс MXBean, который также будет реализован возвращаемым прокси. -
notificationEmitter- заставить возвращаемый прокси реализоватьNotificationEmitter, перенаправляя его методы черезconnection. - Returns:
- новый экземпляр прокси.
- Throws:
-
IllegalArgumentException- еслиinterfaceClassне являетсяcompliant MXBean interface
isMXBeanInterface
public static boolean isMXBeanInterface(Class<?> interfaceClass)
Проверить, является ли интерфейс интерфейсом MXBean. Интерфейс является интерфейсом MXBean, если он public, аннотирован @MXBean или @MXBean(true) или если у него нет аннотации @MXBean и его имя заканчивается на "MXBean".
- Parameters:
-
interfaceClass- Кандидатный интерфейс. - Returns:
- true, если
interfaceClassявляетсяcompliant MXBean interface - Throws:
-
NullPointerException- еслиinterfaceClassравно null.
© 1993, 2023, 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/21/docs/api/java.management/javax/management/JMX.html