JavaTM 2 Platform
Standard Ed. 6

javax.management.remote.rmi
類別 RMIConnector

java.lang.Object
  繼承者 javax.management.remote.rmi.RMIConnector
所有已實作的介面:
Closeable, Serializable, JMXAddressable, JMXConnector

public class RMIConnector
extends Object
implements JMXConnector, Serializable, JMXAddressable

一個到遠端 RMI 連接器的連接。通常使用 JMXConnectorFactory 建立這樣的連接。但是,專門的應用程序可直接使用此類別,例如獲得 RMIServer 樁模組 (stub) 則不需要通過 JNDI。

從以下版本開始:
1.5
另請參見:
序列化表格

欄位摘要
 
從介面 javax.management.remote.JMXConnector 繼承的欄位
CREDENTIALS
 
建構子摘要
RMIConnector(JMXServiceURL url, Map<String,?> environment)
          建構一個將 RMI 連接器伺服器連接到給定位址的 RMIConnector
RMIConnector(RMIServer rmiServer, Map<String,?> environment)
          用給定的 RMI stub 建構一個 RMIConnector
 
方法摘要
 void addConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          添加一個接收連接狀態改變的偵聽器。
 void close()
          關閉客戶端到其伺服器的連接。
 void connect()
          建立到連接器伺服器的連接。
 void connect(Map<String,?> environment)
          建立到連接器伺服器的連接。
 JMXServiceURL getAddress()
          此連接器的位址。
 String getConnectionId()
          獲得來自連接器伺服器的連接 ID。
 MBeanServerConnection getMBeanServerConnection()
          返回一個代表遠端 MBean 伺服器的 MBeanServerConnection 物件。
 MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
          返回 MBeanServerConnection 物件,它表示在其上執行代表提供的委託主題操作的遠端 MBean 伺服器。
 void removeConnectionNotificationListener(NotificationListener listener)
          將一個用於接收狀態更改通知的偵聽器從列表中移除。
 void removeConnectionNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback)
          將一個用於接收狀態更改通知的偵聽器從列表中移除。
 String toString()
          返回此物件的字元串表示形式。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

RMIConnector

public RMIConnector(JMXServiceURL url,
                    Map<String,?> environment)

建構一個將 RMI 連接器伺服器連接到給定位址的 RMIConnector

位址可直接參考連接器伺服器,可使用如下語法之一:

 service:jmx:rmi://[host[:port]]/stub/encoded-stub
 service:jmx:iiop://[host[:port]]/ior/encoded-IOR
 

(這裡的方括號 [] 不屬於位址的組成部分,只表示主機和埠號為可選項)。

位址還可表示使用 JNDI 尋找 RMI stub 的位置,使用如下語法之一:

 service:jmx:rmi://[host[:port]]/jndi/jndi-name
 service:jmx:iiop://[host[:port]]/jndi/jndi-name
 

實作還可識別其他位址語法,如下所示:

 service:jmx:iiop://[host[:port]]/stub/encoded-stub
 

參數:
url - RMI 連接器伺服器的位址。
environment - 指定如何進行連接的其他屬性。對於基於 JNDI 的位址,這些屬性可有效地包含可由 InitialContext 識別的 JNDI 屬性。此參數可以為 null,它等效於一個空映射。
拋出:
IllegalArgumentException - 如果 url 為 null。

RMIConnector

public RMIConnector(RMIServer rmiServer,
                    Map<String,?> environment)

用給定的 RMI stub 建構一個 RMIConnector

參數:
rmiServer - 代表 RMI 連接器伺服器的一個 RMI 樁模組。
environment - 指定如何進行連接的其他屬性。此參數可以為 null,其等效於一個空映射。
拋出:
IllegalArgumentException - 如果 rmiServer 為 null。
方法詳細資訊

toString

public String toString()

返回此物件的字元串表示形式。通常,toString 方法會返回一個“按文本方式表示”此物件的字元串。結果應是一個簡明而豐富的表示形式,以方便人們閱讀。

覆寫:
類別 Object 中的 toString
返回:
此物件的字元串表示形式。

getAddress

public JMXServiceURL getAddress()

此連接器的位址。

指定者:
介面 JMXAddressable 中的 getAddress
返回:
此連接器的位址;如果沒有任何位址,則返回 null。
從以下版本開始:
1.6

connect

public void connect()
             throws IOException
從介面 JMXConnector 複製的描述

建立到連接器伺服器的連接。此方法等效於 connect(null)

指定者:
介面 JMXConnector 中的 connect
拋出:
IOException - 如果由於存在通信問題而導致無法建立連接。

connect

public void connect(Map<String,?> environment)
             throws IOException
從介面 JMXConnector 複製的描述

建立到連接器伺服器的連接。

如果已在該物件上成功調用了 connect,則再次調用將沒有任何作用。但是,如果 JMXConnector.close() 是在調用 connect 之後調用的,則新的 connect 將拋出 IOException

否則,在此物件上未調用過任何一個 connect,或者雖然調用過但產生了一個異常。然後對 connect 的調用將試圖建立到連接器伺服器的連接。

指定者:
介面 JMXConnector 中的 connect
參數:
environment - 連接的屬性。此映射中的屬性覆寫創建 JMXConnector 時指定的映射中的屬性(如果有)。此參數可以為 null,其等效於一個空映射。
拋出:
IOException - 如果由於存在通信問題而導致無法建立連接。

getConnectionId

public String getConnectionId()
                       throws IOException
從介面 JMXConnector 複製的描述

獲得來自連接器伺服器的連接 ID。對於給定的連接器伺服器,每個連接將具有一個在連接的整個生命週期中都不改變的唯一 ID。

指定者:
介面 JMXConnector 中的 getConnectionId
返回:
此連接的唯一 ID。這與連接器伺服器包含在其 JMXConnectionNotification 中的 ID 相同。package description 描述了連接 ID 的約定。
拋出:
IOException - 如果無法獲得連接 ID,例如在連接關閉或斷開的情況下。

getMBeanServerConnection

public MBeanServerConnection getMBeanServerConnection()
                                               throws IOException
從介面 JMXConnector 複製的描述

返回一個代表遠端 MBean 伺服器的 MBeanServerConnection 物件。對於給定的 JMXConnector,對此方法兩次成功的調用通常將返回相同的 MBeanServerConnection 物件,儘管不需要這樣做。

對於返回的 MBeanServerConnection 中的每個方法,調用該方法將導致調用遠端 MBean 伺服器中的相應方法。MBean 伺服器方法返回的值就是返回給客戶端的值。如果 MBean 伺服器方法產生了 Exception,則客戶端上也會出現相同的 Exception。如果 MBean 伺服器方法(或嘗試對它的調用)產生了 Error,則該 Error 將包裹在 JMXServerErrorException 中,從客戶端能夠看到該錯誤。

調用該方法等效於調用 getMBeanServerConnection(null),這意味著未指定任何委託主題並且在 MBeanServerConnection 上調用的所有操作必須使用經驗證的主題(如果有)。

指定者:
介面 JMXConnector 中的 getMBeanServerConnection
返回:
一個通過將其方法轉發到遠端 MBean 伺服器而實作 MBeanServerConnection 介面的物件。
拋出:
IOException - 如果無法創建有效的 MBeanServerConnection,例如,由於尚未建立到遠端 MBean 伺服器的連接(用 connect 方法),或者連接已關閉,或者連接已斷開。

getMBeanServerConnection

public MBeanServerConnection getMBeanServerConnection(Subject delegationSubject)
                                               throws IOException
從介面 JMXConnector 複製的描述

返回 MBeanServerConnection 物件,它表示在其上執行代表提供的委託主題操作的遠端 MBean 伺服器。對於給定的 JMXConnectorSubject,對此方法兩次成功的調用通常將返回相同的 MBeanServerConnection 物件,儘管不需要這樣做。

對於返回的 MBeanServerConnection 中的每個方法,調用此方法導致調用代表給定委託主題,而不是經驗證主題的遠端 MBean 伺服器上的對應方法。MBean 伺服器方法返回的值就是返回給客戶端的值。如果 MBean 伺服器方法產生了 Exception,則客戶端上也會出現相同的 Exception。如果 MBean 伺服器方法(或嘗試對它的調用)產生了 Error,則該 Error 將包裹在 JMXServerErrorException 中,從客戶端能夠看到該錯誤。

指定者:
介面 JMXConnector 中的 getMBeanServerConnection
參數:
delegationSubject - 代表將執行何種請求的 Subject。可以為 null,這種情況下執行請求表示經驗證的 Subject(如果有)。
返回:
一個通過將其方法轉發到代表給定委託主題的遠端 MBean 伺服器而實作 MBeanServerConnection 介面的物件。
拋出:
IOException - 如果無法創建有效的 MBeanServerConnection,例如,由於尚未建立到遠端 MBean 伺服器的連接(用 connect 方法),或者連接已關閉,或者連接已斷開。

addConnectionNotificationListener

public void addConnectionNotificationListener(NotificationListener listener,
                                              NotificationFilter filter,
                                              Object handback)
從介面 JMXConnector 複製的描述

添加一個接收連接狀態改變的偵聽器。該偵聽器將接收 JMXConnectionNotification 型別的通知。實作也可發送任何其他型別的通知。

使用此方法可添加任意個數的偵聽器。相同的偵聽器可使用相同或不同的 filter 和 handback 值多次添加。不對重複的條目進行任何特殊處理。例如,假設偵聽器兩次註冊均為不帶 filter,則將為每個通知調用兩次其 handleNotification 方法。

指定者:
介面 JMXConnector 中的 addConnectionNotificationListener
參數:
listener - 用於接收連接狀態通知的偵聽器。
filter - 用於選擇要發送給偵聽器的通知的過濾器,如果將發送所有的通知,則為 null。
handback - 將隨每個通知提供給偵聽器的物件。可以為 null。
另請參見:
JMXConnector.removeConnectionNotificationListener(javax.management.NotificationListener), NotificationBroadcaster.addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

public void removeConnectionNotificationListener(NotificationListener listener)
                                          throws ListenerNotFoundException
從介面 JMXConnector 複製的描述

將一個用於接收狀態更改通知的偵聽器從列表中移除。此偵聽器必須在以前已經添加。如果有多個比對的偵聽器,則移除所有比對的偵聽器。

指定者:
介面 JMXConnector 中的 removeConnectionNotificationListener
參數:
listener - 用於接收連接狀態通知的偵聽器。
拋出:
ListenerNotFoundException - 如果偵聽器未用此 JMXConnector 註冊。
另請參見:
JMXConnector.removeConnectionNotificationListener(NotificationListener, NotificationFilter, Object), JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

removeConnectionNotificationListener

public void removeConnectionNotificationListener(NotificationListener listener,
                                                 NotificationFilter filter,
                                                 Object handback)
                                          throws ListenerNotFoundException
從介面 JMXConnector 複製的描述

將一個用於接收狀態更改通知的偵聽器從列表中移除。該偵聽器必須在以前已經用相同的三個參數添加。如果有多個比對的偵聽器,則只移除一個比對的偵聽器。

指定者:
介面 JMXConnector 中的 removeConnectionNotificationListener
參數:
listener - 用於接收連接狀態通知的偵聽器。
filter - 用於選擇發送給偵聽器通知的過濾器。可以為 null。
handback - 將隨每個通知提供給偵聽器的物件。可以為 null。
拋出:
ListenerNotFoundException - 如果偵聽器未用此 JMXConnector 註冊,或者未用給定的 filter 和 handback 註冊。
另請參見:
JMXConnector.removeConnectionNotificationListener(NotificationListener), JMXConnector.addConnectionNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object), NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

close

public void close()
           throws IOException
從介面 JMXConnector 複製的描述

關閉客戶端到其伺服器的連接。任何正在進行中的或新的使用由 JMXConnector.getMBeanServerConnection() 返回的 MBeanServerConnection 的請求將獲得一個 IOException

如果已在該物件上成功調用了 close,則再次調用將沒有任何作用。如果從未調用過 close,或者調用過但產生了異常,則將嘗試關閉該連接。此嘗試可能成功,此時 close 將正常返回,也可能產生一個異常。

關閉連接是一個潛在的慢操作。例如,假設伺服器已崩潰,則關閉操作可能不得不等待網路協議逾時。不希望關閉操作出現阻塞的調用者應在單獨的執行緒中處理關閉。

指定者:
介面 Closeable 中的 close
指定者:
介面 JMXConnector 中的 close
拋出:
IOException - 如果無法完全關閉連接。如果拋出此異常,連接的伺服器端是否已完全關閉為未知。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only