RMI 对象,用于将 MBeanServer 请求从客户端转发到其位于服务器端的 MBeanServer 实现。连接到 RMI 连接器的每个远程客户端都有一个实现此接口的 Remote 对象。
用户代码不经常引用此接口。它作为公用 API 的一部分指定,便于该 API 的不同实现之间实现互操作。
为确保用正确的类加载器将客户端参数在服务器端反序列化,客户端参数(例如,用于调用方法的参数)包装在 MarshalledObject
方法中。此接口的实现必须首先获得适用于操作及其目标的适当的类加载器,然后用该类加载器反序列化编组的参数。除非另外说明,MarshalledObject
或 MarshalledObject[]
类型的参数必定不为 null;如果参数为 null,则行为不明确。
有关类加载的内容在 MBeanServerConnection
接口中的方法相似。这里未指定方法的行为方面,它与相应的 MBeanServerConnection
方法相同。
方法详细信息 |
---|
String getConnectionId() throws IOException
返回连接 ID。对于每个到给定的 RMI 连接器服务器的开放连接,此字符串都不相同。
IOException
- 如果出现通用通信异常。
RMIConnector.connect
void close() throws IOException
关闭此连接。从此方法返回时,不导出实现此接口的 RMI 对象,因此对它的进一步远程调用将失败。
IOException
- 如果无法关闭连接,或 Remote 对象无法被导出,或者在传输远程关闭请求时出现通信故障。
ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, IOException
MBeanServerConnection.createMBean(String, ObjectName)
方法。
className
- 要实例化的 MBean 的类名称。
name
- MBean 的对象名。可以为 null。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
,它包含新实例化的 MBean 的
ObjectName
和 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
- 如果出现通用通信异常。
ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject) throws ReflectionException, InstanceAlreadyExistsException, MBeanRegistrationException, MBeanException, NotCompliantMBeanException, InstanceNotFoundException, IOException
MBeanServerConnection.createMBean(String, ObjectName, ObjectName)
方法。
className
- 要实例化的 MBean 的类名称。
name
- MBean 的对象名。可以为 null。
loaderName
- 要使用的类加载器的对象名。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
,它包含新实例化的 MBean 的
ObjectName
和 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
- 如果出现通用通信异常。
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 的对象名。可以为 null。
params
- 包含要调用的构造方法的参数的数组,数组封装在
MarshalledObject
中。封装的数组可以为 null,其等效于一个空数组。
signature
- 包含要调用的构造方法的签名的数组。可以为 null,等效于一个空数组。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
,它包含新实例化的 MBean 的
ObjectName
和 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
- 如果出现通用通信异常。
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 的对象名。可以为 null。
loaderName
- 要使用的类加载器的对象名。
params
- 包含要调用的构造方法的参数的数组,数组封装在
MarshalledObject
中。封装的数组可以为 null,其等效于一个空数组。
signature
- 包含要调用的构造方法的签名的数组。可以为 null,等效于一个空数组。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
,它包含新实例化的 MBean 的
ObjectName
和 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
- 如果出现通用通信异常。
void unregisterMBean(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, MBeanRegistrationException, IOException
MBeanServerConnection.unregisterMBean(ObjectName)
方法。
name
- 要注册的 MBean 的对象名。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务器中注册。
MBeanRegistrationException
- MBean 的 preDeregister (
MBeanRegistration
接口)方法已抛出异常。
RuntimeOperationsException
- 包装了
java.lang.IllegalArgumentException
:参数中的对象名为 null 或您尝试注销的 MBean 为
MBeanServerDelegate
MBean。
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。
IOException
- 如果出现通用通信异常。
ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject) throws InstanceNotFoundException, IOException
MBeanServerConnection.getObjectInstance(ObjectName)
方法。
name
- MBean 的对象名。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
。所包含的
ObjectName
为
name
,所包含的类名称为
getMBeanInfo(name)
.getClassName()
。
InstanceNotFoundException
- 指定的 MBean 未在 MBean 服务器中注册。
RuntimeOperationsException
- 包装了
java.lang.IllegalArgumentException
:参数中的对象名为 null。
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。
IOException
- 如果出现通用通信异常。
Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException
MBeanServerConnection.queryMBeans(ObjectName, QueryExp)
方法。
QueryExp
包装在
MarshalledObject
中。
name
- 标识要检索的 MBean 的对象名模式。如果指定了 null 或未指定任何域或关键字属性,则将检索所有已注册的 MBean。
query
- 用于选择 MBean 的查询表达式,它封装在
MarshalledObject
中。如果
MarshalledObject
封装了一个 null 值,则选择 MBean 时不使用任何查询表达式。
delegationSubject
- 包含委托 principal 的
Subject
,如果使用了验证 principal,则为
null
。
ObjectInstance
对象集。如果没有任何 MBean 满足此查询,则返回一个空列表。
SecurityException
- 如果客户端或委托的 Subject(如果有)没有执行此操作的权限。