javax.management

接口
异常
注释
所有已知子接口:
MBeanServer, MBeanServerForwarder

public interface MBeanServerConnection

此接口表示了与 MBean 服务器(无论是本地的还是远程的)进行通信的一种方式。表示本地 MBean 服务器的 MBeanServer 接口扩展了此接口。

从以下版本开始:
1.5

方法摘要
 void addNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
          向已注册的 MBean 添加一个侦听器。
 void addNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
          向已注册的 MBean 添加一个侦听器。
 ObjectInstance createMBean(String className, ObjectName name)
          在 MBean 服务器中实例化并注册一个 MBean。
 ObjectInstance createMBean(String className, ObjectName name, Object[] params, String[] signature)
          在 MBean 服务器中实例化并注册一个 MBean。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName)
          在 MBean 服务器中实例化并注册一个 MBean。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Object[] params, String[] signature)
          在 MBean 服务器中实例化并注册一个 MBean。
 Object getAttribute(ObjectName name, String attribute)
          获得指定 MBean 的特定属性值。
 AttributeList getAttributes(ObjectName name, String[] attributes)
          获得指定 MBean 的多个属性值。
 String getDefaultDomain()
          返回对 MBean 命名时使用的默认域。
 String[] getDomains()
          返回其中所有 MBean 当前已注册的域的列表。
 Integer getMBeanCount()
          返回 MBean 服务器中已注册的 MBean 数目。
 MBeanInfo getMBeanInfo(ObjectName name)
          此方法发现了 MBean 为管理而公开的属性和操作。
 ObjectInstance getObjectInstance(ObjectName name)
          获得向 MBean 服务器注册的给定 MBean 的 ObjectInstance
 Object invoke(ObjectName name, String operationName, Object[] params, String[] signature)
          在 MBean 上调用某个操作。
 boolean isInstanceOf(ObjectName name, String className)
          如果指定的 MBean 是指定类的一个实例,则返回 true;否则返回 false。
 boolean isRegistered(ObjectName name)
          检查某个 MBean(通过其对象名标识)是否已向 MBean 服务器注册。
 Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
          获得该 MBean 服务器所控制的 MBean。
 Set<ObjectName> queryNames(ObjectName name, QueryExp query)
          获得该 MBean 服务器所控制的 MBean 的名称。
 void removeNotificationListener(ObjectName name, NotificationListener listener)
          从已注册的 MBean 中移除一个侦听器。
 void removeNotificationListener(ObjectName name, NotificationListener listener, NotificationFilter filter, Object handback)
          从已注册的 MBean 中移除一个侦听器。
 void removeNotificationListener(ObjectName name, ObjectName listener)
          从已注册的 MBean 中移除一个侦听器。
 void removeNotificationListener(ObjectName name, ObjectName listener, NotificationFilter filter, Object handback)
          从已注册的 MBean 中移除一个侦听器。
 void setAttribute(ObjectName name, Attribute attribute)
          设置指定 MBean 的特定属性值。
 AttributeList setAttributes(ObjectName name, AttributeList attributes)
          设置指定 MBean 的多个属性值。
 void unregisterMBean(ObjectName name)
          从 MBean 服务器中注销一个 MBean。
 

方法详细信息

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException

在 MBean 服务器中实例化并注册一个 MBean。MBean 服务器将使用其默认的 Loader Repository 来加载 MBean 的类。对象名与该 MBean 相关联。如果给定的对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration 接口并从 preRegister 方法中返回名称。

此方法等效于 createMBean(className, name, (Object[]) null, (String[]) null)

参数:
className - 要实例化的 MBean 的类名。
name - 该 MBean 的对象名。可以为 null。
返回:
一个 ObjectInstance,包含新实例化的 MBean 的 ObjectName 和 Java 类名。如果包含的 ObjectNamen,则所包含的 Java 类名是 getMBeanInfo(n).getClassName()
抛出:
ReflectionException - 包装在试图调用 MBean 的构造方法时所出现的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 接口)方法已经抛出异常。不注册该 MBean。
MBeanException - 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException - 如果此类不是符合 JMX 的 MBean
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果传入参数中的 className 为 null,传入参数中的 ObjectName 包含一个模式或者没有为该 MBean 指定 ObjectName
IOException - 如果与 MBean 服务器通信时出现通信问题。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           ObjectName loaderName)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException

在 MBean 服务器中实例化并注册一个 MBean。通过其对象名标识使用的类加载器。对象名与该 MBean 相关联。如果加载器的对象名为 null,则将使用加载 MBean 服务器的 ClassLoader。如果给定的 MBean 对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration 接口并从 preRegister 方法中返回名称。

此方法等效于 createMBean(className, name, loaderName, (Object[]) null, (String[]) null)

参数:
className - 要实例化的 MBean 的类名。
name - 该 MBean 的对象名。可以为 null。
loaderName - 要使用的类加载器的对象名。
返回:
一个 ObjectInstance,包含新实例化的 MBean 的 ObjectName 和 Java 类名。如果包含的 ObjectNamen,则所包含的 Java 类名是 getMBeanInfo(n).getClassName()
抛出:
ReflectionException - 包装在试图调用 MBean 的构造方法时所出现的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 接口)方法已经抛出异常。不注册该 MBean。
MBeanException - 如果 MBean 的构造方法已经抛出异常。
NotCompliantMBeanException - 如果此类不是符合 JMX 的 MBean。
InstanceNotFoundException - 如果未在 MBean 服务器中注册指定的类加载器。
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果传入参数中的 className 为 null,传入参数中的 ObjectName 包含一个模式或者没有为该 MBean 指定 ObjectName
IOException - 如果与 MBean 服务器通信时出现通信问题。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           Object[] params,
                           String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException
在 MBean 服务器中实例化并注册一个 MBean。MBean 服务器将使用其 默认的 Loader Repository 来加载 MBean 的类。对象名与该 MBean 相关联。如果给定的对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration 接口并从 preRegister 方法中返回名称。

参数:
className - 要实例化的 MBean 的类名。
name - 该 MBean 的对象名。可以为 null。
params - 一个数组,包含要调用的构造方法的参数。
signature - 一个数组,包含要调用的构造方法的签名。
返回:
一个 ObjectInstance,包含新实例化的 MBean 的 ObjectName 和 Java 类名。如果包含的 ObjectNamen,则所包含的 Java 类名是 getMBeanInfo(n).getClassName()
抛出:
ReflectionException - 包装在试图调用 MBean 的构造方法时所出现的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 接口)方法已经抛出异常。不注册该 MBean。
MBeanException - 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException - 如果此类不是符合 JMX 的 MBean
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果传入参数中的 className 为 null,传入参数中的 ObjectName 包含一个模式或者没有为该 MBean 指定 ObjectName
IOException - 如果与 MBean 服务器通信时出现通信问题。

createMBean

ObjectInstance createMBean(String className,
                           ObjectName name,
                           ObjectName loaderName,
                           Object[] params,
                           String[] signature)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException
在 MBean 服务器中实例化并注册一个 MBean。通过其对象名标识使用的类加载器。对象名与该 MBean 相关联。如果未指定加载器的对象名,则将使用加载 MBean 服务器的 ClassLoader。如果给定的 MBean 对象名为 null,则该 MBean 必须提供自己的名称,方法是实现 MBeanRegistration 接口并从 preRegister 方法中返回名称。

参数:
className - 要实例化的 MBean 的类名。
name - 该 MBean 的对象名。可以为 null。
params - 一个数组,包含要调用的构造方法的参数。
signature - 一个数组,包含要调用的构造方法的签名。
loaderName - 要使用的类加载器的对象名。
返回:
一个 ObjectInstance,包含新实例化的 MBean 的 ObjectName 和 Java 类名。如果包含的 ObjectNamen,则所包含的 Java 类名是 getMBeanInfo(n).getClassName()
抛出:
ReflectionException - 包装在试图调用 MBean 的构造方法时所出现的 java.lang.ClassNotFoundExceptionjava.lang.Exception
InstanceAlreadyExistsException - 如果该 MBean 已经处于 MBean 服务器的控制之下。
MBeanRegistrationException - 如果 MBean 的 preRegisterMBeanRegistration 接口)方法已经抛出异常。不注册该 MBean。
MBeanException - 如果 MBean 的构造方法已经抛出异常
NotCompliantMBeanException - 如果此类不是符合 JMX 的 MBean
InstanceNotFoundException - 如果未在 MBean 服务器中注册指定的类加载器。
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果传入参数中的 className 为 null,传入参数中的 ObjectName 包含一个模式或者没有为该 MBean 指定 ObjectName
IOException - 如果与 MBean 服务器通信时出现通信问题。

unregisterMBean

void unregisterMBean(ObjectName name)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException,
                            IOException
从 MBean 服务器中注销一个 MBean。通过 MBean 的对象名来标识 MBean。一旦调用了该方法,就无法再通过 MBean 的对象名来访问该 MBean。

参数:
name - 要注销的 MBean 的对象名。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
MBeanRegistrationException - 如果 MBean 的 preDeregister( MBeanRegistration 接口)方法已经抛出异常。
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null,或者试图注销的 MBean 是 MBeanServerDelegate MBean。
IOException - 如果与 MBean 服务器通信时出现通信问题。

getObjectInstance

ObjectInstance getObjectInstance(ObjectName name)
                                 throws InstanceNotFoundException,
                                        IOException
获得向 MBean 服务器注册的给定 MBean 的 ObjectInstance

参数:
name - MBean 的对象名。
返回:
name 所指定的 MBean 相关联的 ObjectInstance。包含的 ObjectNamename, 且所包含的类名是 getMBeanInfo(name).getClassName()
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
IOException - 如果与 MBean 服务器通信时出现通信问题。

queryMBeans

Set<ObjectInstance> queryMBeans(ObjectName name,
                                QueryExp query)
                                throws IOException
获得该 MBean 服务器所控制的 MBean。此方法允许获得下列任意内容:所有 MBean、由与 ObjectName 和/或 Query 表达式相匹配的模式所指定的一组 MBean、一个特定的 MBean。当对象名为 null 并且未指定域和键属性时,会选中所有对象(如果指定了查询,则进行过滤)。它返回已选中 MBean 的 ObjectInstance 对象集(包含 ObjectName 和 Java 类名)

参数:
name - 对象名模式,标识要检索的 MBean。如果为 null 或未指定域和键属性,则检索所有已注册的 MBean。
query - 应用到所选 MBean 的查询表达式。如果为 null,则不对所选的 MBean 应用查询表达式。
返回:
包含所选的 MBean 的 ObjectInstance 对象的集合。如果没有满足该查询的 MBean,则返回一个空列表。
抛出:
IOException - 如果与 MBean 服务器通信时出现通信问题。

queryNames

Set<ObjectName> queryNames(ObjectName name,
                           QueryExp query)
                           throws IOException
获得该 MBean 服务器所控制的 MBean 的名称。此方法允许获得下列任意内容:所有 MBean 的名称、由与 ObjectName 和/或 Query 表达式相匹配的模式所指定的一组 MBean 的名称、一个特定 MBean 的名称(等效于测试是否已注册某个 MBean)。当对象名为 null 并且未指定域和键属性时,会选中所有对象(如果指定了查询,则进行过滤)。它返回已选中的 MBean 的 ObjectNames 集合。

参数:
name - 对象名模式,标识要检索的 MBean 名称。如果为 null 或未指定域和键属性,则检索所有已注册的 MBean 的名称。
query - 应用到所选 MBean 的查询表达式。如果为 null,则不对选中 MBean 应用查询表达式。
返回:
一个集合,包含已选中 MBean 的 ObjectNames。如果没有满足该查询的 MBean,则返回一个空列表。
抛出:
IOException - 如果与 MBean 服务器通信时出现通信问题。

isRegistered

boolean isRegistered(ObjectName name)
                     throws IOException
检查某个 MBean(通过其对象名标识)是否已向 MBean 服务器注册。

参数:
name - 要检查的 MBean 的对象名。
返回:
如果已在 MBean 服务器中注册了该 MBean,则返回 True;否则返回 false。
抛出:
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null。
IOException - 如果与 MBean 服务器通信时出现通信问题。

getMBeanCount

Integer getMBeanCount()
                      throws IOException
返回 MBean 服务器中已注册的 MBean 数目。

返回:
已注册的 MBean 数。
抛出:
IOException - 如果与 MBean 服务器通信时出现通信问题。

getAttribute

Object getAttribute(ObjectName name,
                    String attribute)
                    throws MBeanException,
                           AttributeNotFoundException,
                           InstanceNotFoundException,
                           ReflectionException,
                           IOException
获得指定 MBean 的特定属性值。通过 MBean 的对象名来标识 MBean。

参数:
name - MBean 的对象名,要通过该对象名检索 MBean 的属性。
attribute - 指定要检索的属性名的 String。
返回:
检索到的属性值。
抛出:
AttributeNotFoundException - 如果指定的属性在 MBean 中是不可访问的。
MBeanException - 包装 MBean 的获取方法所抛出的异常。
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
ReflectionException - 包装试图调用设置方法时所抛出的 java.lang.Exception
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
setAttribute(javax.management.ObjectName, javax.management.Attribute)

getAttributes

AttributeList getAttributes(ObjectName name,
                            String[] attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
获得指定 MBean 的多个属性值。通过 MBean 的对象名来标识 MBean。

参数:
name - MBean 的对象名,通过该对象名检索该 MBean 的属性。
attributes - 要检索的属性列表。
返回:
检索到的属性列表。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
ReflectionException - 试图调用 Dynamic MBean 的 getAttributes 方法时抛出的异常。
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
setAttributes(javax.management.ObjectName, javax.management.AttributeList)

setAttribute

void setAttribute(ObjectName name,
                  Attribute attribute)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException,
                         IOException
设置指定 MBean 的特定属性值。通过 MBean 的对象名来标识 MBean。

参数:
name - 要设置其属性的 MBean 的名称。
attribute - 要设置的属性的标识及其要设置成的值。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
AttributeNotFoundException - 如果指定的属性在 MBean 中是不可访问的。
InvalidAttributeValueException - 如果为该属性指定的值无效。
MBeanException - 包装 MBean 的设置方法所抛出的异常。
ReflectionException - 包装试图调用设置方法时所抛出的 java.lang.Exception
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
getAttribute(javax.management.ObjectName, java.lang.String)

setAttributes

AttributeList setAttributes(ObjectName name,
                            AttributeList attributes)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
设置指定 MBean 的多个属性值。通过 MBean 的对象名来标识 MBean。

参数:
name - 要设置其属性的 MBean 的对象名。
attributes - 属性列表:要设置的属性的标识及其要设置成的值。
返回:
已设置的属性的列表,以及它们的新值。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。

JDK 1.6 中文手册