javax.management

接口
异常
注释
java.lang.Object
  继承者 javax.management.JMX

public class JMX
     
extends Object

JMX API 提供的静态方法。该类没有实例。

从以下版本开始:
1.6

字段摘要
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 字段的名称。
 
方法摘要
static boolean isMXBeanInterface(Class<?> interfaceClass)
          测试某接口是否是 MXBean 接口。
static
<T> T
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
          在本地或远程 MBean Server 中为 Standard MBean 构造一个代理。
static
<T> T
newMBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)
          在同样支持 NotificationEmitter 方法的本地或远程 MBean Server 中为 Standard MBean 构造一个代理。
static
<T> T
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass)
          在本地或远程 MBean Server 中为 MXBean 构造一个代理。
static
<T> T
newMXBeanProxy(MBeanServerConnection connection, ObjectName objectName, Class<T> interfaceClass, boolean notificationBroadcaster)
          在同样支持 NotificationEmitter 方法的本地或远程 MBean Server 中为 MXBean 构造一个代理。
 
从类 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)

在本地或远程 MBean Server 中为 Standard MBean 构造一个代理。

如果 MBean 服务器 mbs 包含 ObjectNamename 的 MBean,并且如果该 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);
 }
 

那么可以执行:

  • 将导致调用 mbs.getAttribute(name, &quot;SomeAttribute&quot;)proxy.getSomeAttribute()
  • 将导致调用 mbs.setAttribute(name, new Attribute(&quot;SomeAttribute&quot;, &quot;whatever&quot;))proxy.setSomeAttribute(&quot;whatever&quot;)
  • 将转换为对 mbs.invoke(name, &quot;someOperation&quot;, <etc>) 的调用的 proxy.someOperation(&quot;param1&quot;, 2)

此方法返回的对象是一个其 InvocationHandlerMBeanServerInvocationHandlerProxy

此方法等效于 newMBeanProxy(connection, objectName, interfaceClass, false)

类型参数:
T - 让编译器知道如果 interfaceClass 参数为 MyMBean.class,则返回类型为 MyMBean
参数:
connection - 作为转发目的地的目标 MBean 服务器。
objectName - 作为转发目的地的 connection 中的 MBean 名。
interfaceClass - MBean 输出的管理接口,也由返回的代理来实现。
返回:
新的代理实例。

newMBeanProxy

public static <T> T newMBeanProxy(MBeanServerConnection connection,
                                  ObjectName objectName,
                                  Class<T> interfaceClass,
                                  boolean notificationBroadcaster)

在同样支持 NotificationEmitter 方法的本地或远程 MBean Server 中为 Standard MBean 构造一个代理。

此方法的行为与 newMBeanProxy(MBeanServerConnection, ObjectName, Class) 相同,但除此以外,如果 notificationBroadcastertrue,则假定 MBean 为 NotificationBroadcasterNotificationEmitter,并且返回的代理将实现 NotificationEmitterinterfaceClass。在该代理上调用 NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) 将导致对 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 的调用,对于 NotificationBroadcasterNotificationEmitter 的其他方法也是如此。

类型参数:
T - 让编译器知道如果 interfaceClass 参数为 MyMBean.class,则返回类型为 MyMBean
参数:
connection - 作为转发目的地的目标 MBean 服务器。
objectName - 作为转发目的地的 connection 中的 MBean 名。
interfaceClass - MBean 输出的管理接口,也由返回的代理来实现。
notificationBroadcaster - 使返回的代理实现 NotificationEmitter,方法是通过 connection 转发其方法。
返回:
新的代理实例。

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection connection,
                                   ObjectName objectName,
                                   Class<T> interfaceClass)

在本地或远程 MBean Server 中为 MXBean 构造一个代理。

如果 MBean 服务器 mbs 包含 ObjectNamename 的 MXBean,并且如果该 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, &quot;SimpleAttribute&quot;)

  • proxy.setSimpleAttribute(&quot;whatever&quot;) 将导致调用 mbs.setAttribute(name, new Attribute("SimpleAttribute", "whatever"))

    因为 String 是一个简单类型(即 SimpleType),所以不会在 MXBean 的上下文中更改它。MXBean 代理的行为与属性 SimpleAttribute 的 Standard MBean 代理(请参阅 newMBeanProxy)的行为相同。

  • proxy.getMappedAttribute() 将导致调用 mbs.getAttribute(&quot;MappedAttribute&quot;)。MXBean 映射规则意味着属性 MappedAttribute 的实际类型将是 CompositeData,并且这是 mbs.getAttribute 调用将返回的内容。该代理然后会使用 MXBean 映射规则将 CompositeData 转换回所期望类型的 MemoryUsage

  • 类似地,proxy.setMappedAttribute(memoryUsage) 将在调用 mbs.setAttribute 之前将 MemoryUsage 参数转换为 CompositeData

  • proxy.someOperation(&quot;whatever&quot;, memoryUsage)MemoryUsage 参数转换为 CompositeData 并调用 mbs.invokembs.invoke 返回的值也将是 CompositeData,并且代理会使用 MXBean 映射规则将此值转换为所期望类型的 MemoryUsage

此方法返回的对象是一个 InvocationHandlerMBeanServerInvocationHandlerProxy

此方法等效于 newMXBeanProxy(connection, objectName, interfaceClass, false)

类型参数:
T - 让编译器知道如果 interfaceClass 参数为 MyMXBean.class,则返回类型为 MyMXBean
参数:
connection - 作为转发目的地的目标 MBean 服务器。
objectName - 作为转发目的地的 connection 中的 MBean 名。
interfaceClass - MXBean 接口,也由返回的代理来实现。
返回:
新的代理实例。

newMXBeanProxy

public static <T> T newMXBeanProxy(MBeanServerConnection connection,
                                   ObjectName objectName,
                                   Class<T> interfaceClass,
                                   boolean notificationBroadcaster)

在同样支持 NotificationEmitter 方法的本地或远程 MBean Server 中为 MXBean 构造一个代理。

此方法的行为与 newMXBeanProxy(MBeanServerConnection, ObjectName, Class) 相同,但除此以外,如果 notificationBroadcastertrue,则假定 MXBean 为 NotificationBroadcasterNotificationEmitter,并且返回的代理将实现 NotificationEmitterinterfaceClass。在该代理上调用 NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) 将导致对 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 的调用,对于 NotificationBroadcasterNotificationEmitter 的其他方法也是如此。

类型参数:
T - 让编译器知道如果 interfaceClass 参数为 MyMXBean.class,则返回类型为 MyMXBean
参数:
connection - 作为转发目的地的目标 MBean 服务器。
objectName - 作为转发目的地的 connection 中的 MBean 名。
interfaceClass - MXBean 接口,也由返回的代理来实现。
notificationBroadcaster - 使返回的代理实现 NotificationEmitter,方法是通过 connection 转发它的方法。
返回:
新的代理实例。

isMXBeanInterface

public static boolean isMXBeanInterface(Class<?> interfaceClass)

测试某接口是否是 MXBean 接口。如果接口为已注释的 @MXBean@MXBean(true),或者接口没有 @MXBean 注释且其名称以 "MXBean" 结尾,则该接口为 MXBean 接口。

参数:
interfaceClass - 侯选接口。
返回:
如果 interfaceClass 是一个接口且满足所描述的条件,则返回 true。
抛出:
NullPointerException - 如果 interfaceClass 为 null。