JavaTM Platform
Standard Ed. 6

javax.management
接口 MBeanServerConnection

所有已知子接口:
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 服务器中注册。
ReflectionException - 试图调用 Dynamic MBean 的 getAttributes 方法时抛出的异常。
RuntimeOperationsException - 包装 java.lang.IllegalArgumentException:如果参数中的对象名为 null 或者参数中的属性为 null。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
getAttributes(javax.management.ObjectName, java.lang.String[])

invoke

Object invoke(ObjectName name,
              String operationName,
              Object[] params,
              String[] signature)
              throws InstanceNotFoundException,
                     MBeanException,
                     ReflectionException,
                     IOException
在 MBean 上调用某个操作。

参数:
name - MBean 的对象名,要在该 MBean 上调用方法。
operationName - 要调用的操作名。
params - 一个数组,包含调用操作时要设置的参数
signature - 包含操作签名的数组。用于加载类对象的类加载器与用于加载 MBean(要在其上调用操作)的类加载器相同。
返回:
该操作返回的对象,表示在指定 MBean 上调用该操作的结果。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
MBeanException - 包装在 MBean 上调用的方法所抛出的异常。
ReflectionException - 包装试图调用该方法时所抛出的 java.lang.Exception
IOException - 如果与 MBean 服务器通信时出现通信问题。

getDefaultDomain

String getDefaultDomain()
                        throws IOException
返回对 MBean 命名时使用的默认域。如果用户未指定域,则将默认域名用作 MBean 的 ObjectName 的域部分。

返回:
默认域。
抛出:
IOException - 如果与 MBean 服务器通信时出现通信问题。

getDomains

String[] getDomains()
                    throws IOException

返回其中所有 MBean 当前已注册的域的列表。当且仅当至少有一个已注册的 MBean 并且其 ObjectName 的 getDomain() 等于某个字符串时,返回的数组中才有该字符串。返回数组中各个字符串的顺序是未定义的。

返回:
域列表。
抛出:
IOException - 如果与 MBean 服务器通信时出现通信问题。

addNotificationListener

void addNotificationListener(ObjectName name,
                             NotificationListener listener,
                             NotificationFilter filter,
                             Object handback)
                             throws InstanceNotFoundException,
                                    IOException

向已注册的 MBean 添加一个侦听器。

MBeanServer 将 MBean 发出的通知转发到该侦听器。如果通知源是对 MBean 对象的引用,则 MBean 服务器将根据 MBean 的 ObjectName 替换它。否则不更改通知源。

参数:
name - MBean 的名称,将在该 MBean 上添加侦听器。
listener - 侦听器对象,它将处理已注册的 MBean 所发出的通知。
filter - 过滤器对象。如果 filter 为 null,则处理通知前不执行过滤。
handback - 发出通知时要发送到侦听器的上下文。
抛出:
InstanceNotFoundException - 如果提供的 MBean 与任何已注册 MBean 都不匹配。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
removeNotificationListener(ObjectName, NotificationListener), removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

addNotificationListener

void addNotificationListener(ObjectName name,
                             ObjectName listener,
                             NotificationFilter filter,
                             Object handback)
                             throws InstanceNotFoundException,
                                    IOException

向已注册的 MBean 添加一个侦听器。

MBeanServer 将 MBean 发出的通知转发到该侦听器。如果通知源是对 MBean 对象的引用,则 MBean 服务器将根据 MBean 的 ObjectName 替换它。否则不更改通知源。

接收通知的侦听器对象是在调用此方法时使用给定名称注册的。即使之后注销了该侦听器,它也将继续接收通知。

参数:
name - MBean 的名称,将在该 MBean 上添加侦听器。
listener - 侦听器的对象名,它将处理已注册的 MBean 所发出的通知。
filter - 过滤器对象。如果 filter 为 null,则处理通知前不执行过滤。
handback - 发出通知时要发送到侦听器的上下文。
抛出:
InstanceNotFoundException - 如果通知侦听器或者通知广播器的 MBean 名与任何已注册的 MBean 都不匹配。
RuntimeOperationsException - 包装 IllegalArgumentException。如果 listener 指定的 MBean 存在但是未实现 NotificationListener 接口。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
removeNotificationListener(ObjectName, ObjectName), removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException
从已注册的 MBean 中移除一个侦听器。

如果可能使用不同过滤器或回调多次注册了该侦听器,则此方法将移除所有这些注册关系。

参数:
name - MBean 的名称,将移除该 MBean 上的侦听器。
listener - 要移除的侦听器的对象名。
抛出:
InstanceNotFoundException - 如果提供的 MBean 与任何已注册 MBean 都不匹配。
ListenerNotFoundException - 如果该侦听器未在 MBean 中注册。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                ObjectName listener,
                                NotificationFilter filter,
                                Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException

从已注册的 MBean 中移除一个侦听器。

该 MBean 必须具有一个与给定 listenerfilterhandback 参数完全匹配的侦听器。如果存在多个这样的侦听器,则只移除一个。

当且仅当 filterhandback 在要移除的侦听器中为 null 时,这两个参数才可以为 null。

参数:
name - MBean 的名称,将移除该 MBean 上的侦听器。
listener - 要移除的侦听器的对象名。
filter - 添加侦听器时所指定的过滤器。
handback - 添加侦听器时所指定的回调。
抛出:
InstanceNotFoundException - 如果提供的 MBean 与任何已注册 MBean 都不匹配。
ListenerNotFoundException - 如果侦听器未在 MBean 中注册,或者没有用给定的过滤器和回调注册它。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                NotificationListener listener)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException

从已注册的 MBean 中移除一个侦听器。

如果可能使用不同过滤器或回调多次注册了该侦听器,则此方法将移除所有这些注册关系。

参数:
name - MBean 的名称,将移除该 MBean 上的侦听器。
listener - 要移除的侦听器。
抛出:
InstanceNotFoundException - 如果提供的 MBean 与任何已注册 MBean 都不匹配。
ListenerNotFoundException - 如果该侦听器未在 MBean 中注册。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

removeNotificationListener

void removeNotificationListener(ObjectName name,
                                NotificationListener listener,
                                NotificationFilter filter,
                                Object handback)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException

从已注册的 MBean 中移除一个侦听器。

该 MBean 必须具有一个与给定 listenerfilterhandback 参数完全匹配的侦听器。如果存在多个这样的侦听器,则只移除一个。

当且仅当 filterhandback 在要移除的侦听器中为 null 时,这两个参数才可以为 null。

参数:
name - MBean 的名称,将移除该 MBean 上的侦听器。
listener - 要移除的侦听器。
filter - 添加侦听器时所指定的过滤器。
handback - 添加侦听器时所指定的回调。
抛出:
InstanceNotFoundException - 如果提供的 MBean 与任何已注册 MBean 都不匹配。
ListenerNotFoundException - 如果侦听器未在 MBean 中注册,或者没有用给定的过滤器和回调注册它。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)

getMBeanInfo

MBeanInfo getMBeanInfo(ObjectName name)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException,
                              IOException
此方法发现了 MBean 为管理而公开的属性和操作。

参数:
name - 要分析的 MBean 名称
返回:
一个 MBeanInfo 实例,允许检索此 MBean 的所有属性和操作。
抛出:
IntrospectionException - 如果在 introspection 期间出现异常。
InstanceNotFoundException - 如果未找到指定的 MBean。
ReflectionException - 试图调用 Dynamic MBean 的 getMBeanInfo 方法时抛出的异常。
IOException - 如果与 MBean 服务器通信时出现通信问题。

isInstanceOf

boolean isInstanceOf(ObjectName name,
                     String className)
                     throws InstanceNotFoundException,
                            IOException

如果指定的 MBean 是指定类的一个实例,则返回 true;否则返回 false。

如果 name 不是 MBean 的名称,则此方法抛出 InstanceNotFoundException

否则,假定
X 是 name 所命名的 MBean、
L 是 X 的 ClassLoader、
N 是 X 的 MBeanInfo 中的类名。

如果 N 等于 className,则结果为 true。

如果 L 成功加载了 className,并且 X 是此类的一个实例,则结果为 true。

如果 L 成功加载了 N 和 className,并且由于第一个类而使第二个类是可分配的,则结果为 true。

否则结果为 false。

参数:
name - MBean 的 ObjectName
className - 类名。
返回:
如果根据上述规则,指定的 MBean 是指定类的实例,则返回 true;否则返回 false。
抛出:
InstanceNotFoundException - 如果指定的 MBean 未在该 MBean 服务器中注册。
IOException - 如果与 MBean 服务器通信时出现通信问题。
另请参见:
Class.isInstance(java.lang.Object)

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策