|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.remote.JMXConnectorServer javax.management.remote.rmi.RMIConnectorServer
public class RMIConnectorServer
JMX API 連接器伺服器,用於從遠端客戶端創建基於 RMI 的連接。通常情況下,使用 JMXConnectorServerFactory
建立這樣的連接器伺服器。但是,專門的應用程序可直接使用此類別,例如使用 RMIServerImpl
物件。
欄位摘要 | |
---|---|
static String |
JNDI_REBIND_ATTRIBUTE
屬性名稱,它指定代表 RMI 連接器伺服器的 RMIServer stub 是否應覆寫位於同一位址的現有 stub。 |
static String |
RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
屬性名稱,它指定了與此連接器一起創建的 RMI 物件的 RMIClientSocketFactory 。 |
static String |
RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
屬性名稱,它指定了與此連接器一起創建的 RMI 物件的 RMIServerSocketFactory 。 |
從類別 javax.management.remote.JMXConnectorServer 繼承的欄位 |
---|
AUTHENTICATOR |
建構子摘要 | |
---|---|
RMIConnectorServer(JMXServiceURL url,
Map<String,?> environment)
建立 RMIConnectorServer 。 |
|
RMIConnectorServer(JMXServiceURL url,
Map<String,?> environment,
MBeanServer mbeanServer)
為給定的 MBean 伺服器建立一個 RMIConnectorServer 。 |
|
RMIConnectorServer(JMXServiceURL url,
Map<String,?> environment,
RMIServerImpl rmiServerImpl,
MBeanServer mbeanServer)
為給定的 MBean 伺服器建立一個 RMIConnectorServer 。 |
方法摘要 | |
---|---|
protected void |
connectionClosed(String connectionId,
String message,
Object userData)
正常關閉客戶端連接時由子類別調用。 |
protected void |
connectionFailed(String connectionId,
String message,
Object userData)
客戶端連接失敗時由子類別調用。 |
protected void |
connectionOpened(String connectionId,
String message,
Object userData)
打開新的客戶端連接時由子類別調用。 |
JMXServiceURL |
getAddress()
該連接器伺服器的位址。 |
Map<String,?> |
getAttributes()
此連接器伺服器的屬性。 |
boolean |
isActive()
確定連接器伺服器是否活動。 |
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf)
添加一個截取對 MBean 伺服器請求的物件,該請求是通過此連接器伺服器到達的。 |
void |
start()
啟動連接器伺服器,即啟動對客戶端連接的偵聽。 |
void |
stop()
取消啟動連接器伺服器,即停止對客戶端連接的偵聽。 |
JMXConnector |
toJMXConnector(Map<String,?> env)
返回此連接器伺服器的客戶端 stub。 |
從類別 javax.management.remote.JMXConnectorServer 繼承的方法 |
---|
getConnectionIds, getMBeanServer, getNotificationInfo, postDeregister, postRegister, preDeregister, preRegister |
從類別 javax.management.NotificationBroadcasterSupport 繼承的方法 |
---|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
欄位詳細資訊 |
---|
public static final String JNDI_REBIND_ATTRIBUTE
屬性名稱,它指定代表 RMI 連接器伺服器的 RMIServer
stub 是否應覆寫位於同一位址的現有 stub。與此屬性關聯的值(如果有)應為與 "true"
或 "false"
相等(忽略大小寫)的字元串。預設值為 false。
public static final String RMI_CLIENT_SOCKET_FACTORY_ATTRIBUTE
屬性名稱,它指定了與此連接器一起創建的 RMI 物件的 RMIClientSocketFactory
。與此屬性關聯的值的型別必須為 RMIClientSocketFactory
,並且只能在創建連接器伺服器時提供的 Map
參數中指定。
public static final String RMI_SERVER_SOCKET_FACTORY_ATTRIBUTE
屬性名稱,它指定了與此連接器一起創建的 RMI 物件的 RMIServerSocketFactory
。與此屬性關聯的值的型別必須為 RMIServerSocketFactory
,並且只能在創建連接器伺服器時提供的 Map
參數中指定。
建構子詳細資訊 |
---|
public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment) throws IOException
建立 RMIConnectorServer
。此方法與調用 RMIConnectorServer(directoryURL,environment,null,null)
具有相同的效果。
url
- 一個定義如何創建連接器伺服器的 URL。不能為 null。environment
- 控制著 RMI 物件的創建和存儲的屬性。可以為 null,它等效於一個空映射。
IllegalArgumentException
- 如果 url
為 null。
MalformedURLException
- 如果 url
不符合 RMI 連接器的語法,或者其協議不能由此實作識別。使用此建構子時,只有 "rmi" 和 "iiop" 為有效的。
IOException
- 如果出於某種原因無法創建連接器伺服器,或者其 start
方法不可避免地失敗。public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, MBeanServer mbeanServer) throws IOException
為給定的 MBean 伺服器建立一個 RMIConnectorServer
。此方法與調用 RMIConnectorServer(directoryURL,environment,null,mbeanServer)
具有相同的效果。
url
- 一個定義如何創建連接器伺服器的 URL。不能為 null。environment
- 控制著 RMI 物件的創建和存儲的屬性。可以為 null,它等效於一個空映射。mbeanServer
- 新的連接器伺服器將與其連接的 MBean 伺服器,或者如果它將通過註冊為 MBean 伺服器中的一個 MBean 進行連接,則為 null。
IllegalArgumentException
- 如果 url
為 null。
MalformedURLException
- 如果 url
不符合 RMI 連接器的語法,或者其協議不能由此實作識別。使用此建構子時,只有 "rmi" 和 "iiop" 為有效的。
IOException
- 如果出於某種原因無法創建連接器伺服器,或者其 start
方法不可避免地失敗。public RMIConnectorServer(JMXServiceURL url, Map<String,?> environment, RMIServerImpl rmiServerImpl, MBeanServer mbeanServer) throws IOException
為給定的 MBean 伺服器建立一個 RMIConnectorServer
。
url
- 一個定義如何創建連接器伺服器的 URL。不能為 null。environment
- 控制著 RMI 物件的創建和存儲的屬性。可以為 null,它等效於一個空映射。rmiServerImpl
- RMIServer 介面的一個實作,與 url 中指定的協議型別一致。如果此參數為非 null,則 url 指定的協議型別沒有約束,假定其為有效。否則,將只識別 "rmi" 和 "iiop"。mbeanServer
- 新的連接器伺服器將與其連接的 MBean 伺服器,或者如果它將通過註冊為 MBean 伺服器中的一個 MBean 進行連接,則為 null。
IllegalArgumentException
- 如果 url
為 null。
MalformedURLException
- 如果 url
不符合 RMI 連接器的語法,或者其協議不能由此實作識別。在 rmiServerImpl 為 null 時,只能識別 "rmi" 和 "iiop"。
IOException
- 如果出於某種原因無法創建連接器伺服器,或者其 start
方法不可避免地失敗。start()
方法詳細資訊 |
---|
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
返回此連接器伺服器的客戶端 stub。客戶端 stub 為一個可序列化的物件,其 connect
方法可用於建立一個到此連接器伺服器的新連接。
JMXConnectorServerMBean
中的 toJMXConnector
JMXConnectorServer
中的 toJMXConnector
env
- 客戶端連接參數,與提供給 JMXConnector.connect(Map)
的參數具有相同的型別。可以為 null,它等效於一個空映射。
UnsupportedOperationException
- 如果此連接器伺服器不支持產生客戶端 stub。
IllegalStateException
- 如果未啟動 JMXConnectorServer(請參閱 isActive()
)。
IOException
- 如果存在通信問題而導致無法創建 stub。public void start() throws IOException
啟動連接器伺服器,即啟動對客戶端連接的偵聽。在連接器伺服器已啟動時,調用此方法沒有任何作用。在連接器伺服器已停止時,調用此方法將產生 IOException
。
此方法第一次調用時的行為取決於建構時提供的如下所示的參數。
首先,需要一個 RMIServerImpl
的子類別的物件,以便將連接器伺服器從 RMI 導出:
RMIServerImpl
,則使用該值。
JMXServiceURL
的協議部分為 iiop
,則創建一個 RMIIIOPServerImpl
型別的物件。
JMXServiceURL
為 null,或者其協議部分為 rmi
,則創建一個型別為 RMIJRMPServerImpl
的物件。
RMIServerImpl
,或者拋出 MalformedURLException
。
如果給定的位址包含一個 JNDI 目錄 URL(如在 javax.management.remote.rmi
的套件文檔中的指定),則該 RMIConnectorServer
通過將 RMIServerImpl
綁定到給定位址進行引導。
如果 JMXServiceURL
的 URL 路徑部分為空或一個單獨的斜線 (/
),則 RMI 物件將不會綁定到一個目錄。相反,RMIConnectorServer 位址(由 getAddress()
返回)的 URL 路徑中將包含一個對它的參考的編碼。javax.management.remote.rmi
的套件文檔中有對 rmi
和 iiop
的編碼的描述。
當 URL 路徑既不為空又不是一個 JNDI 目錄 URL,或者當協議既不是 rmi
又不是 iiop
時的行為由實作定義,並且在創建或啟動連接器伺服器時可能包含拋出 MalformedURLException
的行為。
IllegalStateException
- 如果此連接器伺服器尚未連接到 MBean 伺服器。
IOException
- 如果連接器伺服器無法啟動。public void stop() throws IOException
取消啟動連接器伺服器,即停止對客戶端連接的偵聽。調用此方法還將關閉所有由此伺服器建立的客戶端連接。返回此方法後,無論正常返回還是拋出異常,連接器伺服器都不再創建任何新的客戶端連接。
連接器伺服器一旦停止就無法再啟動。
在連接器伺服器已停止時,調用此方法沒有任何效果。在連接器伺服器尚未啟動時調用此方法將永久禁用連接器伺服器物件。
如果關閉客戶端連接導致異常,則該異常不會從此方法拋出。而會從 MBean 發出一個 JMXConnectionNotification
,同時顯示無法關閉的連接的連接 ID。
關閉連接器伺服器是一個潛在的慢操作。例如,如果具有打開連接的客戶端發生崩潰,則關閉操作不得不等待網路協議逾時。不希望關閉操作出現阻塞的調用者應在單獨的執行緒中處理關閉。
此方法在連接器伺服器的 RMIServerImpl
物件上調用 close
方法。
如果 RMIServerImpl
由 start
方法綁定到 JNDI 目錄,則該方法可解除到目錄的綁定。
IOException
- 如果無法完全關閉伺服器,或者如果無法從目錄解除 RMIServerImpl
的綁定。拋出此異常時,伺服器已經嘗試適當地關閉所有的客戶端連接、調用 RMIServerImpl.close()
並解除 RMIServerImpl
到其目錄的綁定。除了那些伺服器嘗試將它們關閉時產生異常的連接,所有的客戶端連接都被關閉。public boolean isActive()
JMXConnectorServerMBean
複製的描述確定連接器伺服器是否活動。當連接器伺服器的 start
方法成功返回時,此連接器伺服器即進入活動狀態,並一直保持活動狀態直到調用其 stop
方法或連接器伺服器失敗。
public JMXServiceURL getAddress()
JMXConnectorServerMBean
複製的描述該連接器伺服器的位址。
public Map<String,?> getAttributes()
JMXConnectorServerMBean
複製的描述此連接器伺服器的屬性。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBean
複製的描述添加一個截取對 MBean 伺服器請求的物件,該請求是通過此連接器伺服器到達的。此物件將作為任何由此連接器伺服器創建的新連接的 MBeanServer
提供。現有連接不受影響。
如果此連接器伺服器已與一個 MBeanServer
物件關聯,則將該物件提供給 mbsf.setMBeanServer
。如果這樣做產生異常,則該方法拋出相同的異常,沒有任何其他作用。
如果此連接器尚未與一個 MBeanServer
物件關聯,或者如果剛才提到的 mbsf.setMBeanServer
調用成功,則 mbsf
成為該連接器伺服器的 MBeanServer
。
JMXConnectorServerMBean
中的 setMBeanServerForwarder
JMXConnectorServer
中的 setMBeanServerForwarder
mbsf
- 新的 MBeanServerForwarder
。protected void connectionOpened(String connectionId, String message, Object userData)
JMXConnectorServer
複製的描述打開新的客戶端連接時由子類別調用。將由 JMXConnectorServer.getConnectionIds()
返回的 connectionId
添加到列表中,然後發出一個型別為 JMXConnectionNotification.OPENED
的 JMXConnectionNotification
。
JMXConnectorServer
中的 connectionOpened
connectionId
- 新連接的 ID。它必須與任何由此連接器伺服器先前打開的連接的 ID 不一樣。message
- 發出的 JMXConnectionNotification
的訊息。可以為 null。請參閱 Notification.getMessage()
。userData
- 發出的 JMXConnectionNotification
的 userData
。可以為 null。請參閱 Notification.getUserData()
。protected void connectionClosed(String connectionId, String message, Object userData)
JMXConnectorServer
複製的描述正常關閉客戶端連接時由子類別調用。從列表中移除由 JMXConnectorServer.getConnectionIds()
返回的 connectionId
,然後發出一個型別為 JMXConnectionNotification.CLOSED
的 JMXConnectionNotification
。
JMXConnectorServer
中的 connectionClosed
connectionId
- 已關閉連接的 ID。message
- 發出的 JMXConnectionNotification
的訊息。可以為 null。請參閱 Notification.getMessage()
。userData
- 發出的 JMXConnectionNotification
的 userData
。可以為 null。請參閱 Notification.getUserData()
。protected void connectionFailed(String connectionId, String message, Object userData)
JMXConnectorServer
複製的描述客戶端連接失敗時由子類別調用。從列表中移除由 JMXConnectorServer.getConnectionIds()
返回的 connectionId
,然後發出一個型別為 JMXConnectionNotification.FAILED
的 JMXConnectionNotification
。
JMXConnectorServer
中的 connectionFailed
connectionId
- 失敗連接的 ID。message
- 發出的 JMXConnectionNotification
的訊息。可以為 null。請參閱 Notification.getMessage()
。userData
- 發出的 JMXConnectionNotification
的 userData
。可以為 null。請參閱 Notification.getUserData()
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。