public class JMX extends Object
| Modifier and Type | Field and Description |
|---|---|
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 | Method and Description |
|---|---|
static boolean |
isMXBeanInterface(类<?> interfaceClass)
测试接口是否是MXBean接口。
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass)
在本地或远程MBean服务器中为标准MBean创建代理。
|
static <T> T |
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass, boolean notificationEmitter)
在本地或远程MBean服务器中为标准MBean创建代理,该服务器也可以支持 NotificationEmitter的方法。
|
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass)
在本地或远程MBean服务器中为MXBean创建代理。
|
static <T> T |
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<T> interfaceClass, boolean notificationEmitter)
在本地或远程MBean服务器中为MXBean创建代理,该服务器也可能支持 NotificationEmitter的方法。
|
public static final String DEFAULT_VALUE_FIELD
defaultValue字段的名称。
public static final String IMMUTABLE_INFO_FIELD
immutableInfo字段的名称。
public static final String INTERFACE_CLASS_NAME_FIELD
interfaceClassName字段的名称。
public static final String LEGAL_VALUES_FIELD
legalValues字段的名称。
public static final String MAX_VALUE_FIELD
maxValue字段的名称。
public static final String MIN_VALUE_FIELD
minValue字段的名称。
public static final String MXBEAN_FIELD
mxbean字段的名称。
public static final String OPEN_TYPE_FIELD
openType字段的名称。
public static final String ORIGINAL_TYPE_FIELD
originalType字段的名称。
public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<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 - 要转发到的
connection内的MBean的名称。
interfaceClass - MBean导出的管理界面,也将由返回的代理实现。
IllegalArgumentException - 如果
interfaceClass不是
compliant MBean interface
public static <T> T newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<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
public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<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代理与属性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
public static <T> T newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, 类<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
public static boolean isMXBeanInterface(类<?> interfaceClass)
测试接口是否是MXBean接口。 界面是一个MXBean界面,如果它是公共的,注释的是@MXBean或@MXBean(true)或者如果它没有一个@MXBean注释,其名称以“ MXBean ”结尾。
interfaceClass - 候选接口。
interfaceClass是compliant MXBean interface,则为true
NullPointerException - 如果
interfaceClass为空。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.