- 所有父级接口:
AutoCloseable
,Closeable
,Remote
- 所有已知的实现类:
RMIConnectionImpl
,RMIConnectionImpl_Stub
RMI 对象用于将 MBeanServer 请求从客户端转发到服务端的 MBeanServer 实现。对于连接到 RMI 连接器的每个远程客户端,都有一个远程对象实现此接口。
用户代码通常不会引用此接口。它被指定为公共 API 的一部分,以便该 API 的不同实现可以互操作。
为了确保客户端参数将在服务端使用正确的类加载器反序列化,客户端参数(例如用于调用方法的参数)被包装在 MarshalledObject
中。此接口的实现必须首先为操作及其目标获取适当的类加载器,然后使用此类加载器反序列化编组的参数。除非另有说明,MarshalledObject
或 MarshalledObject[]
参数不得为空;如果是,则行为未指定。
JMX 规范,版本 1.4 中详细介绍了类加载方面
此接口中的大多数方法与 MBeanServerConnection
接口中的方法并行。如果此处未指定方法行为的某个方面,则与相应的MBeanServerConnection
方法相同。
- 自从:
- 1.5
-
方法总结
修饰符和类型方法描述void
addNotificationListener
(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) Integer[]
addNotificationListeners
(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects) void
close()
关闭此连接。createMBean
(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject) createMBean
(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject) createMBean
(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject) createMBean
(String className, ObjectName name, Subject delegationSubject) fetchNotifications
(long clientSequenceNumber, int maxNotifications, long timeout) 从连接器服务检索通知。getAttribute
(ObjectName name, String attribute, Subject delegationSubject) getAttributes
(ObjectName name, String[] attributes, Subject delegationSubject) 返回连接 ID。getDefaultDomain
(Subject delegationSubject) String[]
getDomains
(Subject delegationSubject) getMBeanCount
(Subject delegationSubject) getMBeanInfo
(ObjectName name, Subject delegationSubject) getObjectInstance
(ObjectName name, Subject delegationSubject) invoke
(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject) boolean
isInstanceOf
(ObjectName name, String className, Subject delegationSubject) boolean
isRegistered
(ObjectName name, Subject delegationSubject) queryMBeans
(ObjectName name, MarshalledObject query, Subject delegationSubject) queryNames
(ObjectName name, MarshalledObject query, Subject delegationSubject) void
removeNotificationListener
(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) void
removeNotificationListener
(ObjectName name, ObjectName listener, Subject delegationSubject) void
removeNotificationListeners
(ObjectName name, Integer[] listenerIDs, Subject delegationSubject) void
setAttribute
(ObjectName name, MarshalledObject attribute, Subject delegationSubject) setAttributes
(ObjectName name, MarshalledObject attributes, Subject delegationSubject) void
unregisterMBean
(ObjectName name, Subject delegationSubject)
-
方法详情
-
getConnectionId
返回连接 ID。对于给定 RMI 连接器服务的每个打开连接,此字符串都不同。
- 返回:
- 连接 ID
- 抛出:
IOException
- 如果发生一般通信异常。- 参见:
-
close
关闭此连接。从此方法返回时,实现此接口的 RMI 对象未导出,因此对其的进一步远程调用将失败。
- 指定者:
close
在接口AutoCloseable
中- 指定者:
close
在接口Closeable
中- 抛出:
IOException
- 如果无法关闭连接,或者无法取消导出远程对象,或者在传输远程关闭请求时出现通信故障。
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , IOException - 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。MBeanException
- MBean 的构造函数引发了异常。NotCompliantMBeanException
- 此类不是 JMX 兼容的 MBean。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , InstanceNotFoundException , IOException - 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。loaderName
- 要使用的类加载器的对象名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。MBeanException
- MBean 的构造函数引发了异常。NotCompliantMBeanException
- 此类不是 JMX 兼容的 MBean。InstanceNotFoundException
- 指定的类加载器未在 MBean 服务中注册。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为 null,传入参数ObjectName
包含模式或未为 MBean 指定ObjectName
。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String [] signature, Subject delegationSubject) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , IOException 处理方法MBeanServerConnection.createMBean(String, ObjectName, Object[], String[])
。Object[]
参数包装在MarshalledObject
中。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。params
- 包含要调用的构造函数参数的数组,封装到MarshalledObject
中。封装的数组可以为null,相当于一个空数组。signature
- 包含要调用的构造函数签名的数组。可以为null,相当于一个空数组。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。MBeanException
- MBean 的构造函数引发了异常。NotCompliantMBeanException
- 此类不是 JMX 兼容的 MBean。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为空,传入参数ObjectName
包含模式,或者没有为 MBean 指定ObjectName
。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
createMBean
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String [] signature, Subject delegationSubject) throws ReflectionException , InstanceAlreadyExistsException , MBeanRegistrationException , MBeanException , NotCompliantMBeanException , InstanceNotFoundException , IOException 处理方法MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[])
。Object[]
参数包装在MarshalledObject
中。- 参数:
className
- 要实例化的 MBean 的类名。name
- MBean 的对象名称。可能为空。loaderName
- 要使用的类加载器的对象名称。params
- 包含要调用的构造函数参数的数组,封装到MarshalledObject
中。封装的数组可以为null,相当于一个空数组。signature
- 包含要调用的构造函数签名的数组。可以为null,相当于一个空数组。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
一个
ObjectInstance
,包含ObjectName
和新实例化的 MBean 的 Java 类名。如果包含的ObjectName
是n
,则包含的 Java 类名称是
。getMBeanInfo(n)
.getClassName() - 抛出:
ReflectionException
- 包装在尝试调用 MBean 的构造函数时发生的java.lang.ClassNotFoundException
或java.lang.Exception
。InstanceAlreadyExistsException
- MBean 已在 MBean 服务的控制之下。MBeanRegistrationException
- MBean 的preRegister
(MBeanRegistration
接口)方法抛出异常。 MBean 将不会被注册。MBeanException
- MBean 的构造函数引发了异常。NotCompliantMBeanException
- 此类不是 JMX 兼容的 MBean。InstanceNotFoundException
- 指定的类加载器未在 MBean 服务中注册。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:传入参数的 className 为空,传入参数ObjectName
包含模式,或者没有为 MBean 指定ObjectName
。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
unregisterMBean
void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException , MBeanRegistrationException , IOException - 参数:
name
- 要取消注册的 MBean 的对象名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。MBeanRegistrationException
- MBean 的 preDeregister (MBeanRegistration
interface) 方法抛出异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空,或者您尝试注销时所在的 MBean 是MBeanServerDelegate
MBean。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
getObjectInstance
ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException , IOException - 参数:
name
- MBean 的对象名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
与指定的 MBean 关联的
ObjectInstance
姓名.包含的ObjectName
是name
,包含的类名是
。getMBeanInfo(name)
.getClassName() - 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
queryMBeans
Set <ObjectInstance > queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException - 参数:
name
- 标识要检索的 MBean 的对象名称模式。如果指定为空或未指定域和键属性,则将检索所有已注册的 MBean。query
- 用于选择 MBean 的查询表达式,封装到MarshalledObject
中。如果MarshalledObject
封装了一个空值,则不会应用任何查询表达式来选择 MBean。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
-
包含所选 MBean 的
ObjectInstance
对象的集合。如果没有 MBean 满足查询,则返回一个空列表。 - 抛出:
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
queryNames
Set <ObjectName > queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException - 参数:
name
- 标识要检索的 MBean 名称的对象名称模式。如果指定为空或未指定域和键属性,将检索所有已注册 MBean 的名称。query
- 用于选择 MBean 的查询表达式,封装到MarshalledObject
中。如果MarshalledObject
封装了一个空值,则不会应用任何查询表达式来选择 MBean。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 包含所选 MBean 的对象名称的集合。如果没有 MBean 满足查询,则返回一个空列表。
- 抛出:
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
isRegistered
- 参数:
name
- 要检查的 MBean 的对象名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 如果 MBean 已在 MBean 服务中注册,则为 True,否则为 false。
- 抛出:
RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
getMBeanCount
- 参数:
delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 注册的 MBean 数。
- 抛出:
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
getAttribute
Object getAttribute(ObjectName name, String attribute, Subject delegationSubject) throws MBeanException , AttributeNotFoundException , InstanceNotFoundException , ReflectionException , IOException - 参数:
name
- 要从中检索属性的 MBean 的对象名称。attribute
- 一个字符串,指定要检索的属性的名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 检索到的属性的值。
- 抛出:
AttributeNotFoundException
- 指定的属性在 MBean 中不可访问。MBeanException
- 包装由 MBean 的 getter 抛出的异常。InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 包装在尝试调用 getter 时抛出的java.lang.Exception
。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。RuntimeMBeanException
- 包装由 MBean 的 getter 抛出的运行时异常。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。- 参见:
-
getAttributes
AttributeList getAttributes(ObjectName name, String [] attributes, Subject delegationSubject) throws InstanceNotFoundException , ReflectionException , IOException - 参数:
name
- 从中检索属性的 MBean 的对象名称。attributes
- 要检索的属性列表。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 检索到的属性的列表。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。- 参见:
-
setAttribute
void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject) throws InstanceNotFoundException , AttributeNotFoundException , InvalidAttributeValueException , MBeanException , ReflectionException , IOException 处理方法MBeanServerConnection.setAttribute(ObjectName, Attribute)
。Attribute
参数包装在MarshalledObject
中。- 参数:
name
- 要在其中设置属性的 MBean 的名称。attribute
- 要设置的属性的标识及其要设置的值,封装到MarshalledObject
中。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。AttributeNotFoundException
- 指定的属性在 MBean 中不可访问。InvalidAttributeValueException
- 为属性指定的值无效。MBeanException
- 包装由 MBean 的设置器抛出的异常。ReflectionException
- 包装在尝试调用 setter 时抛出的java.lang.Exception
。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。- 参见:
-
setAttributes
AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject) throws InstanceNotFoundException , ReflectionException , IOException 处理方法MBeanServerConnection.setAttributes(ObjectName, AttributeList)
。AttributeList
参数包装在MarshalledObject
中。- 参数:
name
- 要在其中设置属性的 MBean 的对象名称。attributes
- 属性列表:要设置的属性的标识及其要设置的值,封装到MarshalledObject
中。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 已设置的属性列表及其新值。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。ReflectionException
- 尝试调用 Dynamic MBean 的 getAttributes 方法时发生异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空或参数中的属性为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。- 参见:
-
invoke
Object invoke(ObjectName name, String operationName, MarshalledObject params, String [] signature, Subject delegationSubject) throws InstanceNotFoundException , MBeanException , ReflectionException , IOException 处理方法MBeanServerConnection.invoke(ObjectName, String, Object[], String[])
。Object[]
参数包装在MarshalledObject
中。- 参数:
name
- 要在其上调用方法的 MBean 的对象名称。operationName
- 要调用的操作的名称。params
- 包含调用操作时要设置的参数的数组,封装到MarshalledObject
中。封装的数组可以为null,相当于一个空数组。signature
- 包含操作签名的数组。将使用与用于加载调用操作的 MBean 的类加载器相同的类加载器来加载类对象。可以为null,相当于一个空数组。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 操作返回的对象,表示对指定的 MBean 调用操作的结果。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。MBeanException
- 包装由 MBean 的调用方法抛出的异常。ReflectionException
- 包装在尝试调用该方法时抛出的java.lang.Exception
。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。RuntimeOperationsException
- 当name
或operationName
为空时包装IllegalArgumentException
。
-
getDefaultDomain
- 参数:
delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 默认域。
- 抛出:
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
getDomains
- 参数:
delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 域列表。
- 抛出:
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。
-
getMBeanInfo
MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException , IntrospectionException , ReflectionException , IOException - 参数:
name
- 要分析的 MBean 的名称delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
MBeanInfo
的实例允许检索此 MBean 的所有属性和操作。- 抛出:
IntrospectionException
- 内省期间发生异常。InstanceNotFoundException
- 未找到指定的 MBean。ReflectionException
- 尝试调用 Dynamic MBean 的 getMBeanInfo 时发生异常。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空。
-
isInstanceOf
boolean isInstanceOf(ObjectName name, String className, Subject delegationSubject) throws InstanceNotFoundException , IOException - 参数:
name
- MBean 的ObjectName
。className
- 类的名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 返回:
- 如果根据上述规则指定的 MBean 是指定类的实例,则返回 true,否则返回 false。
- 抛出:
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务中注册。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。RuntimeOperationsException
- 包装一个java.lang.IllegalArgumentException
:参数中的对象名称为空。
-
addNotificationListener
void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException , IOException 处理方法MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
。NotificationFilter
参数包装在MarshalledObject
中。Object
(handback)参数也包含在MarshalledObject
中。- 参数:
name
- 应在其上添加监听器的 MBean 的名称。listener
- 将处理已注册 MBean 发出的通知的监听器的对象名称。filter
- 过滤器对象,封装到MarshalledObject
中。如果MarshalledObject
中封装的filter为空值,则处理通知前不会进行任何过滤。handback
- 发出通知时要发送给监听器的上下文,封装到MarshalledObject
中。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 通知监听器或通知广播器的 MBean 名称与任何已注册的 MBean 都不匹配。RuntimeOperationsException
- 包装一个IllegalArgumentException
。listener
命名的 MBean 存在但未实现NotificationListener
接口,或者name
或listener
为空。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject) throws InstanceNotFoundException , ListenerNotFoundException , IOException - 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 要删除的监听器的对象名称。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。RuntimeOperationsException
- 当name
或listener
为空时包装IllegalArgumentException
。- 参见:
-
removeNotificationListener
void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject) throws InstanceNotFoundException , ListenerNotFoundException , IOException 处理方法MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object)
。NotificationFilter
参数包装在MarshalledObject
中。Object
参数也包含在MarshalledObject
中。- 参数:
name
- 应删除监听器的 MBean 的名称。listener
- 先前添加到此 MBean 的监听器。filter
- 添加监听器时指定的过滤器,封装到MarshalledObject
中。handback
- 添加监听器时指定的回传,封装到MarshalledObject
中。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 提供的 MBean 名称与任何已注册的 MBean 都不匹配。ListenerNotFoundException
- 监听器未在 MBean 中注册,或者未向给定的过滤器和 handback 注册。SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。IOException
- 如果发生一般通信异常。RuntimeOperationsException
- 当name
或listener
为空时包装IllegalArgumentException
。- 参见:
-
addNotificationListeners
Integer [] addNotificationListeners(ObjectName [] names, MarshalledObject [] filters, Subject [] delegationSubjects) throws InstanceNotFoundException , IOException 注册来自与给定过滤器匹配的给定 MBean 的通知。远程客户端随后可以使用
fetchNotifications
方法检索通知。对于每个监听器,原来的
NotificationListener
和handback
都保存在客户端;为了让客户端能够识别它们,服务生成并返回一个唯一的listenerID
。此listenerID
与Notifications
一起转发到远程客户端。如果给定的 (name, filter) 对中的任何一个无法注册,则操作将失败并出现异常,并且不会注册任何名称或过滤器。
- 参数:
names
-ObjectNames
标识发出通知的 MBean。filters
-NotificationFilters
的编组表示数组。该数组的元素可以为空。delegationSubjects
- 代表其添加监听器的Subjects
。该数组的元素可以为空。此外,delegationSubjects
参数本身可以为 null,这相当于一个空值数组,其大小与names
和filters
数组相同。- 返回:
-
标识本地监听器的
listenerIDs
数组。该数组具有与参数相同数量的元素。 - 抛出:
IllegalArgumentException
- 如果names
或filters
为空,或者如果names
包含空元素,或者如果三个数组的大小不同。ClassCastException
- 如果filters
的元素之一解组为非空对象,它不是NotificationFilter
。InstanceNotFoundException
- 如果names
之一不对应于任何已注册的 MBean。SecurityException
- 如果对于其中一个 MBean,客户端或委托的 Subject(如果有)没有添加监听器的权限。IOException
- 如果发生一般通信异常。
-
removeNotificationListeners
void removeNotificationListeners(ObjectName name, Integer [] listenerIDs, Subject delegationSubject) throws InstanceNotFoundException , ListenerNotFoundException , IOException 处理
removeNotificationListener(ObjectName, NotificationListener)
和removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object)
方法。此方法从 MBean 服务中的给定 MBean 中删除一个或多个
NotificationListener
。NotificationListeners
由addNotificationListeners(ObjectName[], MarshalledObject[], Subject[])
方法返回的 ID 标识。- 参数:
name
-ObjectName
标识发出通知的 MBean。listenerIDs
- 与要删除的监听器对应的 ID 列表。delegationSubject
- 包含委托主体的Subject
或null
(如果使用身份验证主体)。- 抛出:
InstanceNotFoundException
- 如果给定的name
不对应于任何已注册的 MBean。ListenerNotFoundException
- 如果在服务端未找到其中一个监听器。如果 MBean 出于某种原因而不是对MBeanServer.removeNotificationListener
的调用而丢弃监听器,则会发生此异常。SecurityException
- 如果客户端或委托的 Subject(如果有)没有删除监听器的权限。IOException
- 如果发生一般通信异常。IllegalArgumentException
- 如果ObjectName
或listenerIds
为空,或者如果listenerIds
包含空元素。
-
fetchNotifications
NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout) throws IOException 从连接器服务检索通知。此方法可以阻塞,直到至少有一个通知或达到指定的超时为止。该方法还可以随时返回零通知。
如果通知的序列号不小于
clientSequenceNumber
并且此客户端已为生成通知的 MBean 注册了至少一个监听器,并且具有接受通知的过滤器,则通知可以包含在结果中。每个对通知感兴趣的监听器都由addNotificationListeners(ObjectName[], MarshalledObject[], Subject[])
返回的整数 ID 标识。- 参数:
clientSequenceNumber
- 客户端感兴趣的第一个序列号。如果为负,则它被解释为下一个通知将具有的序列号。maxNotifications
- 要返回的不同通知的最大数量。如果同一通知出现多次,则返回的NotificationResult
中的TargetedNotification
数组可以包含比这更多的元素。如果此参数为负,则行为未指定。timeout
- 等待通知到达的最长时间(以毫秒为单位)。这可以是 0,表示如果没有通知,该方法不应等待,而应立即返回。可以是Long.MAX_VALUE
表示没有超时。如果此参数为负,则行为未指定。- 返回:
-
一个
NotificationResult
。 - 抛出:
IOException
- 如果发生一般通信异常。
-