|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.management.remote.rmi.RMIServerImpl
public abstract class RMIServerImpl
表示连接器服务器的 RMI 对象。远程客户端可使用 newClient(Object) 方法进行连接。此方法返回表示此连接的 RMI 对象。
用户代码不经常直接引用此类。RMI 连接服务器通常使用 RMIConnectorServer 类创建。远程客户端通常使用 JMXConnectorFactory 或通过实例化 RMIConnector 创建连接。
这是一个抽象类。由具体的子类定义客户端连接对象的细节,例如使用的是 JRMP 还是 IIOP。
| 构造方法摘要 | |
|---|---|
RMIServerImpl(Map<String,?> env)
构造一个新的 RMIServerImpl。 |
|
| 方法摘要 | |
|---|---|
protected void |
clientClosed(RMIConnection client)
关闭由 makeClient 创建的客户端连接时调用的方法。 |
void |
close()
关闭此连接服务器。 |
protected abstract void |
closeClient(RMIConnection client)
关闭由 makeClient 建立的客户端连接。 |
protected abstract void |
closeServer()
由 close() 调用以关闭连接器服务器。 |
protected abstract void |
export()
导出此 RMI 对象。 |
ClassLoader |
getDefaultClassLoader()
获得此连接器服务器使用的默认 ClassLoader。 |
MBeanServer |
getMBeanServer()
此连接器服务器所连接的 MBeanServer。 |
protected abstract String |
getProtocol()
返回该对象的协议字符串。 |
String |
getVersion()
此连接器服务器能识别的 RMI 连接协议版本。 |
protected abstract RMIConnection |
makeClient(String connectionId,
Subject subject)
创建一个新的客户端连接。 |
RMIConnection |
newClient(Object credentials)
创建一个新的客户端连接。 |
void |
setDefaultClassLoader(ClassLoader cl)
设置此连接器服务器的默认 ClassLoader。 |
void |
setMBeanServer(MBeanServer mbs)
设置此连接器服务器所连接的 MBeanServer。 |
abstract Remote |
toStub()
返回此服务器对象的可远程化的 stub。 |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 构造方法详细信息 |
|---|
public RMIServerImpl(Map<String,?> env)
构造一个新的 RMIServerImpl。
env - 包含新的 RMIServerImpl 属性的环境。可以为 null,它等效于一个空映射。| 方法详细信息 |
|---|
protected abstract void export()
throws IOException
导出此 RMI 对象。
IOException - 如果无法导出此 RMI 对象。
public abstract Remote toStub()
throws IOException
IOException - 如果无法获得 stub,例如 RMIServerImpl 尚未导出。public void setDefaultClassLoader(ClassLoader cl)
设置此连接器服务器的默认 ClassLoader。新客户端连接将使用此 classloader。现有客户端连接不受影响。
cl - 此连接器服务器将使用的新 ClassLoader。getDefaultClassLoader()public ClassLoader getDefaultClassLoader()
获得此连接器服务器使用的默认 ClassLoader。
ClassLoader。setDefaultClassLoader(java.lang.ClassLoader)public void setMBeanServer(MBeanServer mbs)
设置此连接器服务器所连接的 MBeanServer。新的客户端连接将与此 MBeanServer 交互。现有客户端连接不受影响。
mbs - 新的 MBeanServer。可以为 null,但将在尽可能长的时间内重用新的客户端连接。getMBeanServer()public MBeanServer getMBeanServer()
此连接器服务器所连接的 MBeanServer。这是传递给此对象上的 setMBeanServer(javax.management.MBeanServer) 的最后一个值,或者如果从未调用过该方法,则为 null。
MBeanServer。setMBeanServer(javax.management.MBeanServer)public String getVersion()
RMIServer 复制的描述此连接器服务器能识别的 RMI 连接协议版本。这是一个具有以下格式的字符串:
protocol-version implementation-name
protocol-version 是由句点 (.) 分隔的两个或多个非负整数组成的序列。这里,此文档描述的这一版本的实现必须使用字符串 1.0。
协议版本后面必须有一个空格,然后是实现名称。实现名称的格式未指定。建议在其中包含一个实现版本号。例如,出于安全原因,实现可使用空字符串作为其实现名称。
RMIServer 中的 getVersion
public RMIConnection newClient(Object credentials)
throws IOException
创建一个新的客户端连接。此方法调用 makeClient 并将返回的客户端连接对象添加到一个内部列表中。当此 RMIServerImpl 使用其 close() 方法被关闭时,将调用列表中剩余的每个对象的 close() 方法。
即使事实上一个客户端连接对象位于内部列表中,也不影响对其进行垃圾回收。
RMIServer 中的 newClientcredentials - 此对象指定用户定义的凭据,其传入此服务器以便在创建 RMIConnection 之前验证调用者。可以为 null。
RMIConnection。这通常是由 makeClient 创建的对象,尽管实现可能选择将该对象包装在另一个实现 RMIConnection 的对象中。
IOException - 如果无法创建或导出新的客户端对象。
SecurityException - 如果给定的凭据不允许服务器成功地验证用户。
IllegalStateException - 如果 getMBeanServer() 为 null。
protected abstract RMIConnection makeClient(String connectionId,
Subject subject)
throws IOException
创建一个新的客户端连接。此方法由公共方法 newClient(Object) 调用。
connectionId - 新连接的 ID。由此连接器服务器打开的每个连接将具有不同的 ID。如果此参数为 null,则行为不明确。subject - 经验证的 subject。可以为 null。
RMIConnection。
IOException - 如果无法创建或导出新的客户端对象。
protected abstract void closeClient(RMIConnection client)
throws IOException
关闭由 makeClient 建立的客户端连接。
client - 由 makeClient 以前返回的一个连接,以前尚未在其上调用过 closeClient 方法。如果违反这些条件,包括 client 为 null 的情况,则行为不明确。
IOException - 如果无法关闭客户端连接。protected abstract String getProtocol()
返回该对象的协议字符串。对于 RMI/JRMP,该字符串为 rmi;对于 RMI/IIOP,该字符串为 iiop。
protected void clientClosed(RMIConnection client)
throws IOException
关闭由 makeClient 创建的客户端连接时调用的方法。调用结果对象的 close 方法时,定义 makeClient 的子类必须安排此要调用的方法。这方便从 RMIServerImpl 的连接列表中将其移除。client 不在该列表中并不表示错误。
从连接列表中移除 client 后,此方法调用 closeClient(client)。
client - 已关闭的客户端连接。
IOException - 如果 closeClient(javax.management.remote.rmi.RMIConnection) 抛出此异常。
NullPointerException - 如果 client 为 null。
public void close()
throws IOException
关闭此连接服务器。此方法首先调用 closeServer() 方法以便不接受任何新的客户端连接。然后对由 makeClient 返回的其余每个 RMIConnection 对象调用其 close 方法。
多次调用此方法时,行为不明确。
如果 closeServer() 抛出 IOException,会关闭每个单独的连接,然后从此方法抛出 IOException。
如果 closeServer() 正常返回,但有一个或多个单独连接抛出 IOException,则在关闭所有的连接后,从此方法抛出其中的一个 IOException。如果有多个连接抛出 IOException,则无法确定哪一个异常是从此方法抛出的。
Closeable 中的 closeIOException - 如果 closeServer() 或 RMIConnection.close() 之一调用抛出了 IOException。
protected abstract void closeServer()
throws IOException
由 close() 调用以关闭连接器服务器。从此方法返回后,连接器服务器不接受任何新的连接。
IOException - 如果关闭连接器服务器的尝试失败。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。