|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.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
中的 newClient
credentials
- 此物件指定使用者定義的憑據,其傳入此伺服器以便在創建 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
中的 close
IOException
- 如果 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。