接口 MBeanServerConnection

所有已知的子接口:
MBeanServer , MBeanServerForwarder

public interface MBeanServerConnection
这个接口代表了一种与 MBean 服务对话的方式,无论是本地的还是远程的。代表本地 MBean 服务的 MBeanServer 接口扩展了该接口。
自从:
1.5
  • 方法详情

    • createMBean

      在 MBean 服务中实例化和注册 MBean。 MBean 服务将使用它的 Default Loader Repository 来加载 MBean 的类。对象名称与 MBean 相关联。如果给定的对象名称为空,则 MBean 必须通过实现 MBeanRegistration 接口并从 preRegister 方法返回名称来提供自己的名称。

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

      参数:
      className - 要实例化的 MBean 的类名。
      name - MBean 的对象名称。可能为空。
      返回:
      一个 ObjectInstance ,包含 ObjectName 和新实例化的 MBean 的 Java 类名。如果包含的 ObjectNamen ,则包含的 Java 类名称是 getMBeanInfo(n).getClassName()
      抛出:
      ReflectionException - 包装在尝试调用 MBean 的构造函数时发生的 java.lang.ClassNotFoundExceptionjava.lang.Exception
      InstanceAlreadyExistsException - MBean 已在 MBean 服务的控制之下。
      MBeanRegistrationException - MBean 的 preRegisterMBeanRegistration 接口)方法抛出异常。 MBean 将不会被注册。
      RuntimeMBeanException - 如果 MBean 的构造函数或其 preRegisterpostRegister 方法抛出 RuntimeException 。如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出一个 RuntimeExceptioncreateMBean 方法将抛出一个 RuntimeMBeanException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      RuntimeErrorException - 如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出 Error,则 createMBean 方法将抛出 RuntimeErrorException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      MBeanException - MBean 的构造函数抛出异常
      NotCompliantMBeanException - 此类不是符合 JMX 的 MBean
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:传入参数的 className 为 null,传入参数 ObjectName 包含模式或未为 MBean 指定 ObjectName
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • createMBean

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

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

      参数:
      className - 要实例化的 MBean 的类名。
      name - MBean 的对象名称。可能为空。
      loaderName - 要使用的类加载器的对象名称。
      返回:
      一个 ObjectInstance ,包含 ObjectName 和新实例化的 MBean 的 Java 类名。如果包含的 ObjectNamen ,则包含的 Java 类名称是 getMBeanInfo(n).getClassName()
      抛出:
      ReflectionException - 包装在尝试调用 MBean 的构造函数时发生的 java.lang.ClassNotFoundExceptionjava.lang.Exception
      InstanceAlreadyExistsException - MBean 已在 MBean 服务的控制之下。
      MBeanRegistrationException - MBean 的 preRegisterMBeanRegistration 接口)方法抛出异常。 MBean 将不会被注册。
      RuntimeMBeanException - 如果 MBean 的构造函数或其 preRegisterpostRegister 方法抛出 RuntimeException 。如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出一个 RuntimeExceptioncreateMBean 方法将抛出一个 RuntimeMBeanException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      RuntimeErrorException - 如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出 Error,则 createMBean 方法将抛出 RuntimeErrorException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      MBeanException - MBean 的构造函数抛出异常
      NotCompliantMBeanException - 此类不是符合 JMX 的 MBean
      InstanceNotFoundException - 指定的类加载器未在 MBean 服务中注册。
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:传入参数的 className 为 null,传入参数 ObjectName 包含模式或未为 MBean 指定 ObjectName
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • createMBean

      在 MBean 服务中实例化和注册 MBean。 MBean 服务将使用它的 Default Loader Repository 来加载 MBean 的类。对象名称与 MBean 相关联。如果给定的对象名称为空,则 MBean 必须通过实现 MBeanRegistration 接口并从 preRegister 方法返回名称来提供自己的名称。
      参数:
      className - 要实例化的 MBean 的类名。
      name - MBean 的对象名称。可能为空。
      params - 包含要调用的构造函数参数的数组。
      signature - 包含要调用的构造函数签名的数组。
      返回:
      一个 ObjectInstance ,包含 ObjectName 和新实例化的 MBean 的 Java 类名。如果包含的 ObjectNamen ,则包含的 Java 类名称是 getMBeanInfo(n).getClassName()
      抛出:
      ReflectionException - 包装在尝试调用 MBean 的构造函数时发生的 java.lang.ClassNotFoundExceptionjava.lang.Exception
      InstanceAlreadyExistsException - MBean 已在 MBean 服务的控制之下。
      MBeanRegistrationException - MBean 的 preRegisterMBeanRegistration 接口)方法抛出异常。 MBean 将不会被注册。
      RuntimeMBeanException - 如果 MBean 的构造函数或其 preRegisterpostRegister 方法抛出 RuntimeException 。如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出一个 RuntimeExceptioncreateMBean 方法将抛出一个 RuntimeMBeanException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      RuntimeErrorException - 如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出 Error,则 createMBean 方法将抛出 RuntimeErrorException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      MBeanException - MBean 的构造函数抛出异常
      NotCompliantMBeanException - 此类不是符合 JMX 的 MBean
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:传入参数的 className 为 null,传入参数 ObjectName 包含模式或未为 MBean 指定 ObjectName
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • createMBean

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

      参数:
      className - 要实例化的 MBean 的类名。
      name - MBean 的对象名称。可能为空。
      loaderName - 要使用的类加载器的对象名称。
      params - 包含要调用的构造函数参数的数组。
      signature - 包含要调用的构造函数签名的数组。
      返回:
      一个 ObjectInstance ,包含 ObjectName 和新实例化的 MBean 的 Java 类名。如果包含的 ObjectNamen ,则包含的 Java 类名称是 getMBeanInfo(n).getClassName()
      抛出:
      ReflectionException - 包装在尝试调用 MBean 的构造函数时发生的 java.lang.ClassNotFoundExceptionjava.lang.Exception
      InstanceAlreadyExistsException - MBean 已在 MBean 服务的控制之下。
      MBeanRegistrationException - MBean 的 preRegisterMBeanRegistration 接口)方法抛出异常。 MBean 将不会被注册。
      RuntimeMBeanException - MBean 的构造函数或其 preRegisterpostRegister 方法抛出 RuntimeException。如果 MBean 的 postRegisterMBeanRegistration 接口)方法抛出一个 RuntimeExceptioncreateMBean 方法将抛出一个 RuntimeMBeanException,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeMBeanException 也可能由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      RuntimeErrorException - 如果 MBean 的 postRegister 方法(MBeanRegistration 接口)方法抛出 Error ,那么 createMBean 方法将抛出 RuntimeErrorException ,尽管 MBean 创建和注册成功。在这种情况下,即使 createMBean 方法抛出异常,MBean 也会实际注册。请注意,RuntimeErrorException 也可以由 preRegister 抛出,在这种情况下,MBean 将不会被注册。
      MBeanException - MBean 的构造函数抛出异常
      NotCompliantMBeanException - 此类不是符合 JMX 的 MBean
      InstanceNotFoundException - 指定的类加载器未在 MBean 服务中注册。
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:传入参数的 className 为 null,传入参数 ObjectName 包含模式或未为 MBean 指定 ObjectName
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • unregisterMBean

      从 MBean 服务注销 MBean。 MBean 由其对象名称标识。一旦调用了该方法,就不能再通过其对象名访问 MBean。
      参数:
      name - 要取消注册的 MBean 的对象名称。
      抛出:
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      MBeanRegistrationException - MBean 的 preDeregister (MBeanRegistration interface) 方法抛出异常。
      RuntimeMBeanException - 如果 MBean 的 postDeregisterMBeanRegistration 接口)方法抛出 RuntimeException,则 unregisterMBean 方法将抛出 RuntimeMBeanException,尽管 MBean 注销成功。在这种情况下,即使 unregisterMBean 方法抛出异常,MBean 实际上也会被注销。请注意,RuntimeMBeanException 也可以由 preDeregister 抛出,在这种情况下,MBean 将保持注册状态。
      RuntimeErrorException - 如果 MBean 的 postDeregisterMBeanRegistration 接口)方法抛出 Error,则 unregisterMBean 方法将抛出 RuntimeErrorException,尽管 MBean 注销成功。在这种情况下,即使 unregisterMBean 方法抛出异常,MBean 实际上也会被注销。请注意,RuntimeMBeanException 也可以由 preDeregister 抛出,在这种情况下,MBean 将保持注册状态。
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空,或者您尝试注销时所在的 MBean 是 MBeanServerDelegate MBean。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • getObjectInstance

      ObjectInstance  getObjectInstance(ObjectName  name) throws InstanceNotFoundException , IOException
      获取在 MBean 服务上注册的给定 MBean 的 ObjectInstance
      参数:
      name - MBean 的对象名称。
      返回:
      与指定的 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 上的模式匹配指定的 MBean 和/或查询表达式,一个特定的 MBean。当对象名称为 null 或未指定域和键属性时,将选择所有对象(如果指定了查询,则将进行过滤)。它为选定的 MBean 返回一组 ObjectInstance 对象(包含 ObjectName 和 Java 类名称)。
      参数:
      name - 标识要检索的 MBean 的对象名称模式。如果指定为空或未指定域和键属性,则将检索所有已注册的 MBean。
      query - 用于选择 MBean 的查询表达式。如果为 null,将不会应用查询表达式来选择 MBean。
      返回:
      包含所选 MBean 的 ObjectInstance 对象的集合。如果没有 MBean 满足查询,则返回一个空列表。
      抛出:
      IOException - 与 MBean 服务对话时出现通信问题。
    • queryNames

      Set <ObjectName > queryNames(ObjectName  name, QueryExp  query) throws IOException
      获取由 MBean 服务控制的 MBean 的名称。此方法可以获取以下任何内容:所有 MBean 的名称、由 ObjectName 和/或查询表达式上的模式匹配指定的一组 MBean 的名称、特定的 MBean 名称(相当于测试 MBean 是否是挂号的)。当对象名称为 null 或未指定域和键属性时,将选择所有对象(如果指定了查询,则会过滤)。它返回所选 MBean 的 ObjectNames 集。
      参数:
      name - 标识要检索的 MBean 名称的对象名称模式。如果指定为空或未指定域和键属性,将检索所有已注册 MBean 的名称。
      query - 用于选择 MBean 的查询表达式。如果为 null,将不会应用查询表达式来选择 MBean。
      返回:
      包含所选 MBean 的对象名称的集合。如果没有 MBean 满足查询,则返回一个空列表。
      抛出:
      IOException - 与 MBean 服务对话时出现通信问题。
    • isRegistered

      boolean isRegistered(ObjectName  name) throws IOException
      检查由其对象名称标识的 MBean 是否已注册到 MBean 服务。
      参数:
      name - 要检查的 MBean 的对象名称。
      返回:
      如果 MBean 已在 MBean 服务中注册,则为 True,否则为 false。
      抛出:
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空。
      IOException - 与 MBean 服务对话时出现通信问题。
    • getMBeanCount

      Integer  getMBeanCount() throws IOException
      返回在 MBean 服务中注册的 MBean 数。
      返回:
      注册的 MBean 数。
      抛出:
      IOException - 与 MBean 服务对话时出现通信问题。
    • getAttribute

      获取命名 MBean 的特定属性的值。 MBean 由其对象名称标识。
      参数:
      name - 要从中检索属性的 MBean 的对象名称。
      attribute - 一个字符串,指定要检索的属性的名称。
      返回:
      检索到的属性的值。
      抛出:
      AttributeNotFoundException - 指定的属性在 MBean 中不可访问。
      MBeanException - 包装由 MBean 的 getter 抛出的异常。
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      ReflectionException - 包装在尝试调用 setter 时抛出的 java.lang.Exception
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空或参数中的属性为空。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • getAttributes

      AttributeList  getAttributes(ObjectName  name, String [] attributes) throws InstanceNotFoundException , ReflectionException , IOException

      检索命名 MBean 的多个属性的值。 MBean 由其对象名称标识。

      如果由于某种原因无法检索一个或多个属性,它们将从返回的 AttributeList 中省略。调用者应检查列表的大小是否与 attributes 数组相同。要发现是什么问题阻止了给定属性的检索,请为该属性调用 getAttribute

      下面是调用此方法并检查它是否成功检索所有请求的属性的示例:

       String[] attrNames = ...;
       AttributeList list = mbeanServerConnection.getAttributes(objectName, attrNames);
       if (list.size() == attrNames.length)
         System.out.println("All attributes were retrieved successfully");
       else {
         List<String> missing = new ArrayList<String> (Arrays.asList (attrNames));
         for (Attribute a : list.asList())
           missing.remove(a.getName());
         System.out.println("Did not retrieve: " + missing);
       }
       
      参数:
      name - 从中检索属性的 MBean 的对象名称。
      attributes - 要检索的属性列表。
      返回:
      检索到的属性的列表。
      抛出:
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      ReflectionException - 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空或参数中的属性为空。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • setAttribute

      设置命名 MBean 的特定属性的值。 MBean 由其对象名称标识。
      参数:
      name - 要在其中设置属性的 MBean 的名称。
      attribute - 要设置的属性的标识及其要设置的值。
      抛出:
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      AttributeNotFoundException - 指定的属性在 MBean 中不可访问。
      InvalidAttributeValueException - 为属性指定的值无效。
      MBeanException - 包装由 MBean 的设置器抛出的异常。
      ReflectionException - 包装在尝试调用 setter 时抛出的 java.lang.Exception
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空或参数中的属性为空。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • setAttributes

      设置命名 MBean 的几个属性的值。 MBean 由其对象名称标识。

      如果由于某种原因无法设置一个或多个属性,则返回的 AttributeList 中将省略它们。调用者应检查输入 AttributeList 是否与输出大小相同。要发现是什么问题阻止了给定属性的检索,通常可以为该属性调用 setAttribute ,尽管这不能保证有效。 (例如,两个属性的值可能已被拒绝,因为它们彼此不一致。可能允许单独设置其中一个。)

      下面是调用此方法并检查它是否成功设置了所有请求的属性的示例:

       AttributeList inputAttrs = ...;
       AttributeList outputAttrs = mbeanServerConnection.setAttributes(objectName, inputAttrs);
       if (inputAttrs.size() == outputAttrs.size())
         System.out.println("All attributes were set successfully");
       else {
         List<String> missing = new ArrayList<String> ();
         for (Attribute a : inputAttrs.asList())
           missing.add(a.getName());
         for (Attribute a : outputAttrs.asList())
           missing.remove(a.getName());
         System.out.println("Did not set: " + missing);
       }
       
      参数:
      name - 要在其中设置属性的 MBean 的对象名称。
      attributes - 属性列表:要设置的属性的标识及其要设置的值。
      返回:
      已设置的属性列表及其新值。
      抛出:
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      ReflectionException - 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。
      RuntimeOperationsException - 包装一个 java.lang.IllegalArgumentException:参数中的对象名称为空或参数中的属性为空。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • invoke

      Object  invoke(ObjectName  name, String  operationName, Object [] params, String [] signature) throws InstanceNotFoundException , MBeanException , ReflectionException , IOException

      在 MBean 上调用操作。

      由于需要 signature 来区分可能重载的操作,因此在可能的情况下通过 MBean代理 调用操作要简单得多。例如,假设您有一个像这样的 Standard MBean 接口:

       public interface FooMBean {
         public int countMatches(String[] patterns, boolean ignoreCase);
       }
       

      countMatches 操作可以调用如下:

       String[] myPatterns = ...;
       int count = (Integer) mbeanServerConnection.invoke(
           objectName,
           "countMatches",
           new Object[] {myPatterns, true},
           new String[] {String[].class.getName(), boolean.class.getName()});
       

      或者,它可以通过代理调用,如下所示:

       String[] myPatterns = ...;
       FooMBean fooProxy = JMX.newMBeanProxy(
           mbeanServerConnection, objectName, FooMBean.class);
       int count = fooProxy.countMatches(myPatterns, true);
       
      参数:
      name - 要在其上调用方法的 MBean 的对象名称。
      operationName - 要调用的操作的名称。
      params - 包含调用操作时要设置的参数的数组
      signature - 包含操作签名的数组,由 Class.getName() 返回的格式的类名数组。将使用与用于加载调用操作的 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 使用 getDomain() 等于该字符串的 ObjectName 注册时,字符串才会出现在返回的数组中。未定义返回数组中字符串的顺序。

      返回:
      域列表。
      抛出:
      IOException - 与 MBean 服务对话时出现通信问题。
    • addNotificationListener

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

      向已注册的 MBean 添加监听。 MBean 发出的通知将转发给监听。

      参数:
      name - 应在其上添加监听器的 MBean 的名称。
      listener - 将处理已注册 MBean 发出的通知的监听器对象。
      filter - 过滤器对象。如果 filter 为 null,则在处理通知之前不会执行任何过滤。
      handback - 发出通知时要发送给监听器的上下文。
      抛出:
      InstanceNotFoundException - 提供的 MBean 名称与任何已注册的 MBean 都不匹配。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • addNotificationListener

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

      向已注册的 MBean 添加监听。

      MBean 发出的通知将由 MBeanServer 转发给监听。如果通知源是对 MBean 对象的引用,则 MBean 服务将用该 MBean 的 ObjectName 替换它。否则源不变。

      接收通知的监听对象是在调用此方法时使用给定名称注册的对象。即使随后取消注册,它也会继续收到通知。

      参数:
      name - 应在其上添加监听器的 MBean 的名称。
      listener - 将处理已注册 MBean 发出的通知的监听器的对象名称。
      filter - 过滤器对象。如果 filter 为 null,则在处理通知之前不会执行任何过滤。
      handback - 发出通知时要发送给监听器的上下文。
      抛出:
      InstanceNotFoundException - 通知监听器或通知广播器的 MBean 名称与任何已注册的 MBean 都不匹配。
      RuntimeOperationsException - 包装一个 IllegalArgumentException listener 命名的 MBean 存在但未实现 NotificationListener 接口。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • removeNotificationListener

      void removeNotificationListener(ObjectName  name, ObjectName  listener) throws InstanceNotFoundException , ListenerNotFoundException , IOException
      从已注册的 MBean 中删除监听。

      如果监听注册了不止一次,可能使用不同的过滤器或回调,此方法将删除所有这些注册。

      参数:
      name - 应删除监听器的 MBean 的名称。
      listener - 要删除的监听器的对象名称。
      抛出:
      InstanceNotFoundException - 提供的 MBean 名称与任何已注册的 MBean 都不匹配。
      ListenerNotFoundException - 监听器未在 MBean 中注册。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • removeNotificationListener

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

      从已注册的 MBean 中删除监听。

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

      当且仅当它们在要删除的监听器中为空时,filterhandback 参数可以为空。

      参数:
      name - 应删除监听器的 MBean 的名称。
      listener - 要删除的监听器的对象名称。
      filter - 添加监听器时指定的过滤器。
      handback - 添加监听器时指定的交接。
      抛出:
      InstanceNotFoundException - 提供的 MBean 名称与任何已注册的 MBean 都不匹配。
      ListenerNotFoundException - 监听器未在 MBean 中注册,或者未向给定的过滤器和 handback 注册。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • removeNotificationListener

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

      从已注册的 MBean 中删除监听。

      如果监听注册了不止一次,可能使用不同的过滤器或回调,此方法将删除所有这些注册。

      参数:
      name - 应删除监听器的 MBean 的名称。
      listener - 要删除的监听器。
      抛出:
      InstanceNotFoundException - 提供的 MBean 名称与任何已注册的 MBean 都不匹配。
      ListenerNotFoundException - 监听器未在 MBean 中注册。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • removeNotificationListener

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

      从已注册的 MBean 中删除监听。

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

      当且仅当它们在要删除的监听器中为空时,filterhandback 参数可以为空。

      参数:
      name - 应删除监听器的 MBean 的名称。
      listener - 要删除的监听器。
      filter - 添加监听器时指定的过滤器。
      handback - 添加监听器时指定的交接。
      抛出:
      InstanceNotFoundException - 提供的 MBean 名称与任何已注册的 MBean 都不匹配。
      ListenerNotFoundException - 监听器未在 MBean 中注册,或者未向给定的过滤器和 handback 注册。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见:
    • getMBeanInfo

      此方法发现 MBean 为管理而公开的属性和操作。
      参数:
      name - 要分析的 MBean 的名称
      返回:
      MBeanInfo 的实例允许检索此 MBean 的所有属性和操作。
      抛出:
      IntrospectionException - 内省期间发生异常。
      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 的类加载器,
      是 X 的 MBeanInfo 中的类名。

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

      否则,如果 L 成功加载 className 且 X 是此类的实例,则结果为真。

      否则,如果 L 成功加载 N 和 className ,并且第二个类可从第一个类分配,则结果为真。

      否则,结果为假。

      参数:
      name - MBean 的 ObjectName
      className - 类的名称。
      返回:
      如果根据上述规则指定的 MBean 是指定类的实例,则返回 true,否则返回 false。
      抛出:
      InstanceNotFoundException - 指定的 MBean 未在 MBean 服务中注册。
      IOException - 与 MBean 服务对话时出现通信问题。
      参见: