JavaTM Platform
Standard Ed. 6

javax.management.remote.rmi
类 RMIConnectionImpl

java.lang.Object
  继承者 javax.management.remote.rmi.RMIConnectionImpl
所有已实现的接口:
Closeable, Remote, Unreferenced, RMIConnection

public class RMIConnectionImpl
extends Object
implements RMIConnection, Unreferenced

RMIConnection 接口的实现。用户代码不经常引用此类。

从以下版本开始:
1.5

构造方法摘要
RMIConnectionImpl(RMIServerImpl rmiServer, String connectionId, ClassLoader defaultClassLoader, Subject subject, Map<String,?> env)
          构造新的 RMIConnection
 
方法摘要
 void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)
          处理 MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。
 Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects)
          处理 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。
 void close()
          关闭此连接。
 ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] signature, Subject delegationSubject)
          处理 MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]) 方法。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] signature, Subject delegationSubject)
          处理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]) 方法。
 ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, Subject delegationSubject)
          处理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName) 方法。
 ObjectInstance createMBean(String className, ObjectName name, Subject delegationSubject)
          处理 MBeanServerConnection.createMBean(String, ObjectName) 方法。
 NotificationResult fetchNotifications(long clientSequenceNumber, int maxNotifications, long timeout)
          检索来自连接器服务器的通知。
 Object getAttribute(ObjectName name, String attribute, Subject delegationSubject)
          处理 MBeanServerConnection.getAttribute(ObjectName, String) 方法。
 AttributeList getAttributes(ObjectName name, String[] attributes, Subject delegationSubject)
          处理 MBeanServerConnection.getAttributes(ObjectName, String[]) 方法。
 String getConnectionId()
          返回连接 ID。
 String getDefaultDomain(Subject delegationSubject)
          处理 MBeanServerConnection.getDefaultDomain() 方法。
 String[] getDomains(Subject delegationSubject)
          处理 MBeanServerConnection.getDomains() 方法。
 Integer getMBeanCount(Subject delegationSubject)
          处理 MBeanServerConnection.getMBeanCount() 方法。
 MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject)
          处理 MBeanServerConnection.getMBeanInfo(ObjectName) 方法。
 ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject)
          处理 MBeanServerConnection.getObjectInstance(ObjectName) 方法。
 Object invoke(ObjectName name, String operationName, MarshalledObject params, String[] signature, Subject delegationSubject)
          处理 MBeanServerConnection.invoke(ObjectName, String, Object[], String[]) 方法。
 boolean isInstanceOf(ObjectName name, String className, Subject delegationSubject)
          处理 MBeanServerConnection.isInstanceOf(ObjectName, String) 方法。
 boolean isRegistered(ObjectName name, Subject delegationSubject)
          处理 MBeanServerConnection.isRegistered(ObjectName) 方法。
 Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject)
          处理 MBeanServerConnection.queryMBeans(ObjectName, QueryExp) 方法。
 Set<ObjectName> queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject)
          处理 MBeanServerConnection.queryNames(ObjectName, QueryExp) 方法。
 void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject handback, Subject delegationSubject)
          处理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。
 void removeNotificationListener(ObjectName name, ObjectName listener, Subject delegationSubject)
          处理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName) 方法。
 void removeNotificationListeners(ObjectName name, Integer[] listenerIDs, Subject delegationSubject)
          处理 removeNotificationListener(ObjectName, NotificationListener)removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。
 void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject)
          处理 MBeanServerConnection.setAttribute(ObjectName, Attribute) 方法。
 AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject)
          处理 MBeanServerConnection.setAttributes(ObjectName, AttributeList) 方法。
 String toString()
          返回此对象的字符串表示形式。
 void unreferenced()
          在运行时确定引用列表(引用远程对象的客户机列表)变空之后的某个时候由 RMI 运行时调用。
 void unregisterMBean(ObjectName name, Subject delegationSubject)
          处理 MBeanServerConnection.unregisterMBean(ObjectName) 方法。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

RMIConnectionImpl

public RMIConnectionImpl(RMIServerImpl rmiServer,
                         String connectionId,
                         ClassLoader defaultClassLoader,
                         Subject subject,
                         Map<String,?> env)
构造新的 RMIConnection。此连接即可与 JRMP 一起使用,也可与 IIOP 传输一起使用。此对象并不导出其自身:应由调用者将其适当地导出(请参阅 RMIJRMPServerImpl.makeClient(String,Subject)RMIIIOPServerImpl.makeClient(String,Subject))。

参数:
rmiServer - 为其创建此连接的 RMIServerImpl 对象。如果该参数为 null,则行为不明确。
connectionId - 该连接的 ID。如果该参数为 null,则行为不明确。
defaultClassLoader - 将在反序列化编组对象时使用的默认 ClassLoader。可以为 null,表示引导类加载器。
subject - 将供授权使用的经验证的主题。可以为 null,表示尚未验证任何主题。
env - 包含新的 RMIServerImpl 属性的环境。可以为 null,等效于一个空映射。
方法详细信息

getConnectionId

public String getConnectionId()
                       throws IOException
从接口 RMIConnection 复制的描述

返回连接 ID。对于每个到给定的 RMI 连接器服务器的开放连接,此字符串都不相同。

指定者:
接口 RMIConnection 中的 getConnectionId
返回:
连接 ID
抛出:
IOException - 如果出现通用通信异常。
另请参见:
RMIConnector.connect

close

public void close()
           throws IOException
从接口 RMIConnection 复制的描述

关闭此连接。从此方法返回时,不导出实现此接口的 RMI 对象,因此对它的进一步远程调用将失败。

指定者:
接口 Closeable 中的 close
指定者:
接口 RMIConnection 中的 close
抛出:
IOException - 如果无法关闭连接,或 Remote 对象无法被导出,或者在传输远程关闭请求时出现通信故障。

unreferenced

public void unreferenced()
从接口 Unreferenced 复制的描述
在运行时确定引用列表(引用远程对象的客户机列表)变空之后的某个时候由 RMI 运行时调用。

指定者:
接口 Unreferenced 中的 unreferenced

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.createMBean(String, ObjectName) 方法。

指定者:
接口 RMIConnection 中的 createMBean
参数:
className - 要实例化的 MBean 的类名称。
name - MBean 的对象名。可以为 null。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 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。
IOException - 如果出现通用通信异常。

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  ObjectName loaderName,
                                  Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName) 方法。

指定者:
接口 RMIConnection 中的 createMBean
参数:
className - 要实例化的 MBean 的类名称。
name - MBean 的对象名。可以为 null。
loaderName - 要使用的类加载器的对象名。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 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。
InstanceNotFoundException - 指定的类加载器未在 MBean 服务器中注册。
IOException - 如果出现通用通信异常。

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  MarshalledObject params,
                                  String[] signature,
                                  Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.createMBean(String, ObjectName, Object[], String[]) 方法。Object[] 参数包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 createMBean
参数:
className - 要实例化的 MBean 的类名称。
name - MBean 的对象名。可以为 null。
params - 包含要调用的构造方法的参数的数组,数组封装在 MarshalledObject 中。封装的数组可以为 null,其等效于一个空数组。
signature - 包含要调用的构造方法的签名的数组。可以为 null,等效于一个空数组。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 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。
IOException - 如果出现通用通信异常。

createMBean

public ObjectInstance createMBean(String className,
                                  ObjectName name,
                                  ObjectName loaderName,
                                  MarshalledObject params,
                                  String[] signature,
                                  Subject delegationSubject)
                           throws ReflectionException,
                                  InstanceAlreadyExistsException,
                                  MBeanRegistrationException,
                                  MBeanException,
                                  NotCompliantMBeanException,
                                  InstanceNotFoundException,
                                  IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.createMBean(String, ObjectName, ObjectName, Object[], String[]) 方法。Object[] 参数包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 createMBean
参数:
className - 要实例化的 MBean 的类名称。
name - MBean 的对象名。可以为 null。
loaderName - 要使用的类加载器的对象名。
params - 包含要调用的构造方法的参数的数组,数组封装在 MarshalledObject 中。封装的数组可以为 null,其等效于一个空数组。
signature - 包含要调用的构造方法的签名的数组。可以为 null,等效于一个空数组。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 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。
InstanceNotFoundException - 指定的类加载器未在 MBean 服务器中注册。
IOException - 如果出现通用通信异常。

unregisterMBean

public void unregisterMBean(ObjectName name,
                            Subject delegationSubject)
                     throws InstanceNotFoundException,
                            MBeanRegistrationException,
                            IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.unregisterMBean(ObjectName) 方法。

指定者:
接口 RMIConnection 中的 unregisterMBean
参数:
name - 要注册的 MBean 的对象名。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
MBeanRegistrationException - MBean 的 preDeregister (MBeanRegistration 接口)方法已抛出异常。
IOException - 如果出现通用通信异常。

getObjectInstance

public ObjectInstance getObjectInstance(ObjectName name,
                                        Subject delegationSubject)
                                 throws InstanceNotFoundException,
                                        IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getObjectInstance(ObjectName) 方法。

指定者:
接口 RMIConnection 中的 getObjectInstance
参数:
name - MBean 的对象名。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
name 指定的与 MBean 关联的 ObjectInstance。所包含的 ObjectNamename,所包含的类名称为 getMBeanInfo(name).getClassName()
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
IOException - 如果出现通用通信异常。

queryMBeans

public Set<ObjectInstance> queryMBeans(ObjectName name,
                                       MarshalledObject query,
                                       Subject delegationSubject)
                                throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.queryMBeans(ObjectName, QueryExp) 方法。QueryExp 包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 queryMBeans
参数:
name - 标识要检索的 MBean 的对象名模式。如果指定了 null 或未指定任何域或关键字属性,则将检索所有已注册的 MBean。
query - 用于选择 MBean 的查询表达式,它封装在 MarshalledObject 中。如果 MarshalledObject 封装了一个 null 值,则选择 MBean 时不使用任何查询表达式。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
包含选定 MBean 的 ObjectInstance 对象集。如果没有任何 MBean 满足此查询,则返回一个空列表。
抛出:
IOException - 如果出现通用通信异常。

queryNames

public Set<ObjectName> queryNames(ObjectName name,
                                  MarshalledObject query,
                                  Subject delegationSubject)
                           throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.queryNames(ObjectName, QueryExp) 方法。QueryExp 包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 queryNames
参数:
name - 标识要检索的 MBean 名称的对象名模式。如果指定了 null 或未指定任何域或关键字属性,则将检索所有已注册的 MBean 的名称。
query - 用于选择 MBean 的查询表达式,它封装在 MarshalledObject 中。如果 MarshalledObject 封装了一个 null 值,则选择 MBean 时不使用任何查询表达式。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
包含选定的 MBean 的 ObjectName 集。如果没有任何 MBean 满足此查询,则返回一个空列表。
抛出:
IOException - 如果出现通用通信异常。

isRegistered

public boolean isRegistered(ObjectName name,
                            Subject delegationSubject)
                     throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.isRegistered(ObjectName) 方法。

指定者:
接口 RMIConnection 中的 isRegistered
参数:
name - 要检查的 MBean 的对象名。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
True 如果 MBean 已在 MBean 服务器上注册,否则返回 false。
抛出:
IOException - 如果出现通用通信异常。

getMBeanCount

public Integer getMBeanCount(Subject delegationSubject)
                      throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getMBeanCount() 方法。

指定者:
接口 RMIConnection 中的 getMBeanCount
参数:
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
已注册的 MBean 数。
抛出:
IOException - 如果出现通用通信异常。

getAttribute

public Object getAttribute(ObjectName name,
                           String attribute,
                           Subject delegationSubject)
                    throws MBeanException,
                           AttributeNotFoundException,
                           InstanceNotFoundException,
                           ReflectionException,
                           IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getAttribute(ObjectName, String) 方法。

指定者:
接口 RMIConnection 中的 getAttribute
参数:
name - 将要从其检索属性的 MBean 的对象名。
attribute - 指定要检索的属性名称的字符串。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
检索到的属性的值。
抛出:
MBeanException - 包装了由 MBean 的获取方法抛出的异常。
AttributeNotFoundException - 指定的属性在 MBean 中无法访问。
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
ReflectionException - 包装了尝试调用获取方法时抛出的 java.lang.Exception
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.setAttribute(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

getAttributes

public AttributeList getAttributes(ObjectName name,
                                   String[] attributes,
                                   Subject delegationSubject)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getAttributes(ObjectName, String[]) 方法。

指定者:
接口 RMIConnection 中的 getAttributes
参数:
name - 从其检索属性的 MBean 的对象名。
attributes - 要检索的属性的列表。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
所检索的属性的列表。
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
ReflectionException - 尝试调用 Dynamic MBean 的 getAttributes 方法时出现的异常。
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.setAttributes(javax.management.ObjectName, java.rmi.MarshalledObject, javax.security.auth.Subject)

setAttribute

public void setAttribute(ObjectName name,
                         MarshalledObject attribute,
                         Subject delegationSubject)
                  throws InstanceNotFoundException,
                         AttributeNotFoundException,
                         InvalidAttributeValueException,
                         MBeanException,
                         ReflectionException,
                         IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.setAttribute(ObjectName, Attribute) 方法。Attribute 参数包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 setAttribute
参数:
name - 在其中设置属性的 MBean 的名称。
attribute - 要设置的属性的标识及要设置的值,封装在 MarshalledObject 中。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
AttributeNotFoundException - 指定的属性在 MBean 中无法访问。
InvalidAttributeValueException - 为属性指定的值无效。
MBeanException - 包装了由 MBean 的设置方法抛出的异常。
ReflectionException - 包装了尝试调用设置方法时抛出的 java.lang.Exception
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.getAttribute(javax.management.ObjectName, java.lang.String, javax.security.auth.Subject)

setAttributes

public AttributeList setAttributes(ObjectName name,
                                   MarshalledObject attributes,
                                   Subject delegationSubject)
                            throws InstanceNotFoundException,
                                   ReflectionException,
                                   IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.setAttributes(ObjectName, AttributeList) 方法。AttributeList 参数包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 setAttributes
参数:
name - 要在其中设置属性的 MBean 的对象名。
attributes - 属性列表:要设置的属性的标识及要设置的值,封装在 MarshalledObject 中。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
原先设置过的带有新值的属性列表。
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
ReflectionException - 尝试调用 Dynamic MBean 的 getAttributes 方法时出现的异常。
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.getAttributes(javax.management.ObjectName, java.lang.String[], javax.security.auth.Subject)

invoke

public Object invoke(ObjectName name,
                     String operationName,
                     MarshalledObject params,
                     String[] signature,
                     Subject delegationSubject)
              throws InstanceNotFoundException,
                     MBeanException,
                     ReflectionException,
                     IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.invoke(ObjectName, String, Object[], String[]) 方法。Object[] 参数包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 invoke
参数:
name - 将在其上调用此方法的 MBean 的对象名。
operationName - 要调用的操作的名称。
params - 包含调用操作时将设置的参数的数组,它封装在 MarshalledObject 中。封装的数组可以为 null,其等效于一个空数组。
signature - 包含操作的签名的数组。该类对象将使用与加载在其上调用了操作的 MBean 过程中所用的相同的类加载器加载。可以为 null,等效于一个空数组。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
操作返回的对象,它代表在指定的 MBean 上调用操作的结果。
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
MBeanException - 包装了由 MBean 的调用的方法抛出的异常。
ReflectionException - 包装了尝试调用此方法时抛出的 java.lang.Exception
IOException - 如果出现通用通信异常。

getDefaultDomain

public String getDefaultDomain(Subject delegationSubject)
                        throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getDefaultDomain() 方法。

指定者:
接口 RMIConnection 中的 getDefaultDomain
参数:
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
默认的域。
抛出:
IOException - 如果出现通用通信异常。

getDomains

public String[] getDomains(Subject delegationSubject)
                    throws IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getDomains() 方法。

指定者:
接口 RMIConnection 中的 getDomains
参数:
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
域列表。
抛出:
IOException - 如果出现通用通信异常。

getMBeanInfo

public MBeanInfo getMBeanInfo(ObjectName name,
                              Subject delegationSubject)
                       throws InstanceNotFoundException,
                              IntrospectionException,
                              ReflectionException,
                              IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.getMBeanInfo(ObjectName) 方法。

指定者:
接口 RMIConnection 中的 getMBeanInfo
参数:
name - 要分析的 MBean 的名称
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证委托 principal,则为 null
返回:
允许检索该 MBean 的所有属性和操作的 MBeanInfo 的实例。
抛出:
InstanceNotFoundException - 未找到指定的 MBean。
IntrospectionException - 自行推算过程中出现的异常。
ReflectionException - 尝试调用 Dynamic MBean 的 getMBeanInfo 方法时出现的异常。
IOException - 如果出现通用通信异常。

isInstanceOf

public boolean isInstanceOf(ObjectName name,
                            String className,
                            Subject delegationSubject)
                     throws InstanceNotFoundException,
                            IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.isInstanceOf(ObjectName, String) 方法。

指定者:
接口 RMIConnection 中的 isInstanceOf
参数:
name - MBean 的 ObjectName
className - 类的名称。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
返回:
按照上面的规则,如果指定的 MBean 为指定类的实例,则返回 true,否则返回 false。
抛出:
InstanceNotFoundException - 指定的 MBean 未在 MBean 服务器中注册。
IOException - 如果出现通用通信异常。

addNotificationListeners

public Integer[] addNotificationListeners(ObjectName[] names,
                                          MarshalledObject[] filters,
                                          Subject[] delegationSubjects)
                                   throws InstanceNotFoundException,
                                          IOException
从接口 RMIConnection 复制的描述

处理 MBeanServerConnection.addNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。

供来自给定 MBean 的与给定的过滤器匹配的通知使用的记录。远程客户端以后可使用 fetchNotifications 方法检索该通知。

对于每个侦听器,原始的 NotificationListenerhandback 保留在客户端;为帮助客户端识别它们,服务器生成并返回一个唯一的 listenerID。该 listenerIDNotifications 一起转发到远程客户端。

如果给定 (name, filter) 对中有任何一对无法注册,则操作失败并抛出异常,不注册任何名称或过滤器。

指定者:
接口 RMIConnection 中的 addNotificationListeners
参数:
names - 标识发出 Notification 的 MBean 的 ObjectNames
filters - NotificationFilters 的编组表示形式的数组。此数组的元素可以为 null。
delegationSubjects - 侦听器代表其添加的 Subjects。此数组的元素可以为 null。同样,delegationSubjects 参数本身可以为 null,它表示具有 null 值的数组,数组大小与 namesfilters 数组大小相同。
返回:
标识本地侦听器的 listenerIDs 数组。此数组具有与参数个数相同的元素数。
抛出:
InstanceNotFoundException - 如果 names 中有一个不与任何已注册的 MBean 对应。
IOException - 如果出现通用通信异常。

addNotificationListener

public void addNotificationListener(ObjectName name,
                                    ObjectName listener,
                                    MarshalledObject filter,
                                    MarshalledObject handback,
                                    Subject delegationSubject)
                             throws InstanceNotFoundException,
                                    IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.addNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。NotificationFilter 参数包装在 MarshalledObject 中。Object (handback) 参数也包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 addNotificationListener
参数:
name - 应在其上添加侦听器的 MBean 的名称。
listener - 将处理由已注册的 MBean 发出通知的侦听器的对象名。
filter - 过滤器对象,封装在 MarshalledObject 中。如果封装在 MarshalledObject 中的过滤器的值为 null,则在对通知处理之前不执行任何过滤。
handback - 通知发出时发送到侦听器的上下文,封装在 MarshalledObject 中。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 通知侦听器或通知广播器的 MBean 名称不与注册的任何 MBean 匹配。
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.removeNotificationListener(ObjectName, ObjectName, Subject), RMIConnection.removeNotificationListener(ObjectName, ObjectName, MarshalledObject, MarshalledObject, Subject)

removeNotificationListeners

public void removeNotificationListeners(ObjectName name,
                                        Integer[] listenerIDs,
                                        Subject delegationSubject)
                                 throws InstanceNotFoundException,
                                        ListenerNotFoundException,
                                        IOException
从接口 RMIConnection 复制的描述

处理 removeNotificationListener(ObjectName, NotificationListener)removeNotificationListener(ObjectName, NotificationListener, NotificationFilter, Object) 方法。

此方法从 MBean 服务器中的给定 MBean 中移除一个或多个 NotificationListener

NotificationListeners 通过从 RMIConnection.addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]) 方法返回的 ID 标识。

指定者:
接口 RMIConnection 中的 removeNotificationListeners
参数:
name - 标识发出 Notification 的 MBean 的 ObjectName
listenerIDs - 与要移除的侦听器对应的 ID。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 如果给定的 name 不对应任何已注册的 MBean。
ListenerNotFoundException - 如果有一个侦听器在服务器端无法找到。当 MBean 出于某种原因丢弃了一个侦听器,而未通过调用 MBeanServer.removeNotificationListener 丢弃时,出现该异常。
IOException - 如果出现通用通信异常。

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener,
                                       Subject delegationSubject)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName) 方法。

指定者:
接口 RMIConnection 中的 removeNotificationListener
参数:
name - 应在其上移除侦听器的 MBean 的名称。
listener - 要移除的侦听器的对象名。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 所提供的 MBean 名称不与任何已注册 MBean 匹配。
ListenerNotFoundException - 侦听器未在 MBean 中注册。
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

removeNotificationListener

public void removeNotificationListener(ObjectName name,
                                       ObjectName listener,
                                       MarshalledObject filter,
                                       MarshalledObject handback,
                                       Subject delegationSubject)
                                throws InstanceNotFoundException,
                                       ListenerNotFoundException,
                                       IOException
从接口 RMIConnection 复制的描述
处理 MBeanServerConnection.removeNotificationListener(ObjectName, ObjectName, NotificationFilter, Object) 方法。NotificationFilter 参数包装在 MarshalledObject 中。Object 参数也包装在 MarshalledObject 中。

指定者:
接口 RMIConnection 中的 removeNotificationListener
参数:
name - 应在其上移除侦听器的 MBean 的名称。
listener - 原先添加到此 MBean 的侦听器。
filter - 添加侦听器时指定的过滤器,它封装在 MarshalledObject 中。
handback - 添加侦听器时指定的 handback,它封装在 MarshalledObject 中。
delegationSubject - 包含委托 principal 的 Subject,如果使用了验证 principal,则为 null
抛出:
InstanceNotFoundException - 所提供的 MBean 名称不与任何已注册 MBean 匹配。
ListenerNotFoundException - 侦听器未在 MBean 中注册,或者未用给定的过滤器和 handback 注册。
IOException - 如果出现通用通信异常。
另请参见:
RMIConnection.addNotificationListener(javax.management.ObjectName, javax.management.ObjectName, java.rmi.MarshalledObject, java.rmi.MarshalledObject, javax.security.auth.Subject)

fetchNotifications

public NotificationResult fetchNotifications(long clientSequenceNumber,
                                             int maxNotifications,
                                             long timeout)
                                      throws IOException
从接口 RMIConnection 复制的描述

检索来自连接器服务器的通知。该方法可能阻塞,直到至少有一个通知,或者直到达到指定的超时时间。该方法还可在任何时间返回零通知。

如果通知的序列号不小于 clientSequenceNumber,并且此客户端已为 MBean 生成通知至少注册了一个侦听器(带一个接收通知的过滤器),则通知可包含在该结果中。对通知感兴趣的各侦听器由从 RMIConnection.addNotificationListeners(ObjectName[], MarshalledObject[], Subject[]) 返回的整数型 ID 标识。

指定者:
接口 RMIConnection 中的 fetchNotifications
参数:
clientSequenceNumber - 客户端感兴趣的第一个序列号。如果为负,它表示下一个通知将具有的序列号。
maxNotifications - 返回的不同通知的最大数。如果同一个通知出现了多次,则返回的 NotificationResult 中的 TargetedNotification 数组可能包含比此数更多的元素。如果该参数为负,则行为不明确。
timeout - 等待通知到达的最长时间,以毫秒为单位。它可以是 0,指示在无通知时该方法不应等待,而应立即返回。它可以为 Long.MAX_VALUE,指示无超时。如果该参数为负,则行为不明确。
返回:
一个 NotificationResult
抛出:
IOException - 如果出现通用通信异常。

toString

public String toString()

返回此对象的字符串表示形式。通常情况下,toString 方法会返回一个“按文本方式表示”此对象的字符串。结果应是一个简明而丰富的表示,它方便人们阅读。

覆盖:
Object 中的 toString
返回:
此对象的字符串表示形式。

JavaTM Platform
Standard Ed. 6

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

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