Класс JMX
public class JMX extends Object
- Начиная с версии:
- 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 |
Создает прокси для стандартного MBean на локальном или удаленном сервере MBean. |
static <T> T |
newMBeanProxy |
Создает прокси для стандартного MBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter. |
static <T> T |
newMXBeanProxy |
Создает прокси для MXBean на локальном или удаленном сервере MBean. |
static <T> T |
newMXBeanProxy |
Создает прокси для MXBean на локальном или удаленном сервере MBean, который также может поддерживать методы NotificationEmitter. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому объекту. |
protected void |
finalize() |
Устарел и будет удален: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого объекта Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения определенного промежутка реального времени. |
Подробное описание полей
DEFAULT_VALUE_FIELD
IMMUTABLE_INFO_FIELD
INTERFACE_CLASS_NAME_FIELD
LEGAL_VALUES_FIELD
MAX_VALUE_FIELD
MIN_VALUE_FIELD
MXBEAN_FIELD
OPEN_TYPE_FIELD
ORIGINAL_TYPE_FIELD
Подробное описание методов
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)
Если у вас есть сервер 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.
© 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.