|
JavaTM 2 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 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。