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(如果有)没有执行此操作的权限。