Класс JMX
- java.lang.Object
-
- javax.management.JMX
public class JMX extends Object
Статические методы из API JMX. Экземпляры этого класса отсутствуют.
- С момента:
- 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. |
static <T> T |
newMBeanProxy(MBeanServerConnection connection,
ObjectName objectName,
Class<T> interfaceClass,
boolean notificationEmitter) Создание прокси для стандартного MBean в локальном или удалённом сервере MBean, который также может поддерживать методы |
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, который также может поддерживать методы |
Методы, унаследованные от класса 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) Создаёт прокси для 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) Создаёт прокси для 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 ведёт себя так же, как прокси 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).
- Параметры типа:
-
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, если он является публичным, аннотирован @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.