- java.lang.Object
-
- javax.management.JMX
-
public class JMX extends Object
来自JMX API的静态方法。 没有这个类的实例。- 从以下版本开始:
- 1.6
-
-
Field Summary
Fields Modifier and Type Field 描述 static String
DEFAULT_VALUE_FIELD
的名字defaultValue
字段。static String
IMMUTABLE_INFO_FIELD
名称为immutableInfo
字段。static String
INTERFACE_CLASS_NAME_FIELD
名称为interfaceClassName
字段。static String
LEGAL_VALUES_FIELD
名称为legalValues
字段。static String
MAX_VALUE_FIELD
名称为maxValue
字段。static String
MIN_VALUE_FIELD
的名字minValue
字段。static String
MXBEAN_FIELD
名称为mxbean
字段。static String
OPEN_TYPE_FIELD
名称为openType
字段。static String
ORIGINAL_TYPE_FIELD
名称为originalType
字段。
-
方法摘要
所有方法 静态方法 具体的方法 Modifier and Type 方法 描述 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)
在本地或远程MBean服务器中为MXBean创建代理。static <T> T
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
在本地或远程MBean服务器中为MXBean创建代理,该服务器也可能支持NotificationEmitter
的方法。
-
-
-
字段详细信息
-
DEFAULT_VALUE_FIELD
public static final String DEFAULT_VALUE_FIELD
名称为defaultValue
字段。- 另请参见:
- Constant Field Values
-
IMMUTABLE_INFO_FIELD
public static final String IMMUTABLE_INFO_FIELD
immutableInfo
字段的名称。- 另请参见:
- Constant Field Values
-
INTERFACE_CLASS_NAME_FIELD
public static final String INTERFACE_CLASS_NAME_FIELD
名称为interfaceClassName
字段。- 另请参见:
- Constant Field Values
-
LEGAL_VALUES_FIELD
public static final String LEGAL_VALUES_FIELD
名称为legalValues
字段。- 另请参见:
- Constant Field Values
-
MAX_VALUE_FIELD
public static final String MAX_VALUE_FIELD
名称为maxValue
字段。- 另请参见:
- Constant Field Values
-
MIN_VALUE_FIELD
public static final String MIN_VALUE_FIELD
minValue
字段的名称。- 另请参见:
- Constant Field Values
-
MXBEAN_FIELD
public static final String MXBEAN_FIELD
名称为mxbean
字段。- 另请参见:
- Constant Field Values
-
OPEN_TYPE_FIELD
public static final String OPEN_TYPE_FIELD
名称为openType
字段。- 另请参见:
- Constant Field Values
-
ORIGINAL_TYPE_FIELD
public static final String ORIGINAL_TYPE_FIELD
名称为originalType
字段。- 另请参见:
- Constant Field Values
-
-
方法详细信息
-
newMBeanProxy
public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
在本地或远程MBean服务器中为标准MBean创建代理。
如果您有一个包含具有
ObjectName
name
的MBean的MBean服务器mbs
,并且如果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
- 要转发到的connection
内的MBean的名称。 -
interfaceClass
- MBean导出的管理界面,也将由返回的代理实现。 - 结果
- 新的代理实例。
- 异常
-
IllegalArgumentException
- 如果interfaceClass
不是 compliant MBean interface
-
-
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
- 要转发到的connection
内的MBean的名称。 -
interfaceClass
- MBean导出的管理界面,也将由返回的代理实现。 -
notificationEmitter
-使返回的代理实现NotificationEmitter
经由其方法转发connection
。 - 结果
- 新的代理实例。
- 异常
-
IllegalArgumentException
- 如果interfaceClass
不是 compliant MBean interface
-
newMXBeanProxy
public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
在本地或远程MBean服务器中为MXBean创建代理。如果您有一个包含具有
ObjectName
name
的MXBean的MBean服务器mbs
,并且如果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代理与属性SimpleAttribute
的标准MBean代理(参见newMBeanProxy
)SimpleAttribute
。proxy.getMappedAttribute()
将会调用mbs.getAttribute("MappedAttribute")
。 MXBean映射规则意味着属性MappedAttribute
的实际类型将为CompositeData
,这是mbs.getAttribute
调用将返回的。 然后,代理将使用MXBean映射规则将CompositeData
转换回预期类型MemoryUsage
。同样,
proxy.setMappedAttribute(memoryUsage)
将会转换MemoryUsage
参数为CompositeData
然后再拨打mbs.setAttribute
。proxy.someOperation("whatever", memoryUsage)
将会将MemoryUsage
参数转换为CompositeData
并调用mbs.invoke
。 由mbs.invoke
返回的值也将是CompositeData
,代理将使用MXBean映射规则将其转换为预期类型MemoryUsage
。
该方法返回的对象为
Proxy
,其中的InvocationHandler
为MBeanServerInvocationHandler
。此方法相当于
newMXBeanProxy(connection, objectName, interfaceClass, false)
。- 参数类型
-
T
- 允许编译器知道如果interfaceClass
参数是MyMXBean.class
,那么返回类型是MyMXBean
。 - 参数
-
connection
- 要转发的MBean服务器。 -
objectName
- 要转发到的connection
内的MBean的名称。 -
interfaceClass
- MXBean接口,也将由返回的代理实现。 - 结果
- 新的代理实例。
- 异常
-
IllegalArgumentException
- 如果interfaceClass
不是compliant MXBean interface
-
newMXBeanProxy
public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationEmitter)
在本地或远程MBean服务器中为MXBean创建代理,该服务器也可能支持
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
- 要转发到的connection
内的MBean的名称。 -
interfaceClass
- MXBean接口,也将由返回的代理实现。 -
notificationEmitter
-使返回的代理实现NotificationEmitter
经由其方法转发connection
。 - 结果
- 新的代理实例。
- 异常
-
IllegalArgumentException
- 如果interfaceClass
不是compliant MXBean interface
-
isMXBeanInterface
public static boolean isMXBeanInterface(Class<?> interfaceClass)
测试接口是否是MXBean接口。 如果界面是公开的,注释为
@MXBean
或@MXBean(true)
或者如果它没有@MXBean
注释,其名称以“MXBean
”结尾,则是一个MXBean接口。- 参数
-
interfaceClass
- 候选接口。 - 结果
-
如果
interfaceClass
是compliant MXBean interface
,则为true - 异常
-
NullPointerException
- 如果interfaceClass
为空。
-
-