- すべての実装されたインタフェース:
Closeable
,AutoCloseable
,Remote
,RMIServer
- 直系の既知のサブクラス:
RMIIIOPServerImpl
,RMIJRMPServerImpl
コネクタ・サーバーを表すRMIオブジェクトです。 リモート・クライアントは、newClient(Object)
メソッドを使って接続を行えます。 このメソッドは、接続を表すRMIオブジェクトを返します。
ユーザー・コードは、必ずしもこのクラスを直接参照しません。 通常、RMI接続サーバーは、RMIConnectorServer
クラスで作成されます。 リモート・クライアントは、通常、JMXConnectorFactory
を使用するか、RMIConnector
をインスタンス化することによって接続を作成します。
これは抽象クラスです。 具体的なサブクラスは、クライアント接続オブジェクトの詳細を定義します。
- 導入されたバージョン:
- 1.5
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明protected void
clientClosed(RMIConnection client)
makeClient
によって作成されたクライアント接続の終了時に呼び出されるメソッドです。void
close()
この接続サーバーを終了します。protected abstract void
closeClient(RMIConnection client)
makeClient
で作成されたクライアント接続を終了します。protected abstract void
close()
によって呼び出され、コネクタ・サーバーを終了します。protected abstract void
export()
このRMIオブジェクトをエクスポートします。このコネクタ・サーバーで使用されるデフォルトのClassLoader
を取得します。このコネクタ・サーバーの接続先のMBeanServer
です。protected abstract String
このオブジェクトのプロトコル文字列を返します。このコネクタ・サーバーが認識するRMIコネクタ・プロトコルのバージョンです。protected abstract RMIConnection
makeClient(String connectionId, Subject subject)
新しいクライアント接続を作成します。新しいクライアント接続を作成します。void
このコネクタ・サーバーのデフォルトのClassLoader
を設定します。void
setMBeanServer(MBeanServer mbs)
このコネクタ・サーバーの接続先のMBeanServer
を設定します。abstract Remote
toStub()
このサーバー・オブジェクトのリモート処理可能なスタブを返します。
-
コンストラクタの詳細
-
RMIServerImpl
新しい
RMIServerImpl
を構築します。- パラメータ:
env
- 新しいRMIServerImpl
の属性を含む環境。 nullも可、その場合は空マップと同等。
-
-
メソッドの詳細
-
export
protected abstract void export() throws IOExceptionこのRMIオブジェクトをエクスポートします。
- 例外:
IOException
- このRMIオブジェクトをエクスポートできない場合。
-
toStub
public abstract Remote toStub() throws IOExceptionこのサーバー・オブジェクトのリモート処理可能なスタブを返します。- 戻り値:
- リモート処理可能なスタブ。
- 例外:
IOException
- スタブを取得できない場合。たとえば、RMIServerImplがまだエクスポートされていない場合など。
-
setDefaultClassLoader
public void setDefaultClassLoader(ClassLoader cl)このコネクタ・サーバーのデフォルトの
ClassLoader
を設定します。 新しいクライアント接続は、このクラス・ローダーを使用します。 既存のクライアント接続に影響はありません。- パラメータ:
cl
- このコネクタ・サーバーで使用される新しいClassLoader
。- 関連項目:
getDefaultClassLoader()
-
getDefaultClassLoader
public ClassLoader getDefaultClassLoader()このコネクタ・サーバーで使用されるデフォルトの
ClassLoader
を取得します。- 戻り値:
- このコネクタ・サーバーで使用されるデフォルトの
ClassLoader
。 - 関連項目:
setDefaultClassLoader(java.lang.ClassLoader)
-
setMBeanServer
public void setMBeanServer(MBeanServer mbs)このコネクタ・サーバーの接続先の
MBeanServer
を設定します。 新しいクライアント接続は、このMBeanServer
と相互に作用します。 既存のクライアント接続に影響はありません。- パラメータ:
mbs
- 新しいMBeanServer
。 nullでもよいが、その場合、新しいクライアント接続は拒否される。- 関連項目:
getMBeanServer()
-
getMBeanServer
public MBeanServer getMBeanServer()このコネクタ・サーバーの接続先の
MBeanServer
です。 これは、このオブジェクト上でsetMBeanServer(javax.management.MBeanServer)
に渡される最後の値です。そのメソッドが1回も呼び出されていない場合はnullになります。- 戻り値:
- このコネクタの接続先の
MBeanServer
。 - 関連項目:
setMBeanServer(javax.management.MBeanServer)
-
getVersion
public String getVersion()次のインタフェースからコピーされた説明:RMIServer
このコネクタ・サーバーが認識するRMIコネクタ・プロトコルのバージョンです。 次の形式の文字列になります。
protocol-version implementation-name
protocol-version
はゼロ以上の複数の整数をピリオド(.
)で区切った形式になります。 このドキュメントに記載されているバージョンの実装では、文字列1.0
を使用します。プロトコル・バージョンと実装名の間には空白文字を1つ入力する必要があります。 実装名の形式は特定されていませんが、 実装のバージョン番号を含めることをお薦めします。 セキュリティ上の理由などにより、実装名として空文字列を指定することもできます。
- 定義:
getVersion
、インタフェース:RMIServer
- 戻り値:
- ここで説明されている形式の文字列。
-
newClient
public RMIConnection newClient(Object credentials) throws IOException新しいクライアント接続を作成します。 このメソッドは、
makeClient
を呼び出し、返されたクライアント接続オブジェクトを内部リストに追加します。close()
メソッドにより、このRMIServerImpl
が終了した場合、リスト内に残っている各オブジェクトのclose()
メソッドが呼び出されます。この内部リスト内にクライアント接続オブジェクトが存在していても、このクライアント接続オブジェクトがガベージ・コレクションの対象から除外されるわけではありません。
- 定義:
newClient
、インタフェース:RMIServer
- パラメータ:
credentials
- このオブジェクトは、RMIConnection
を作成する前に、呼出し側の認証用としてサーバーに渡されるユーザー定義の証明書を指定する。 nullも可。- 戻り値:
- 新しく生成された
RMIConnection
。 これは通常、makeClient
によって作成されたオブジェクトであるが、実装では、RMIConnection
を実装する別のオブジェクトにこのオブジェクトをラップできる。 - 例外:
IOException
- 新しいクライアント・オブジェクトを作成またはエクスポートできない場合。SecurityException
- 指定された証明書では、サーバーがユーザーを認証できない場合。IllegalStateException
-getMBeanServer()
がnullである場合。
-
makeClient
protected abstract RMIConnection makeClient(String connectionId, Subject subject) throws IOException新しいクライアント接続を作成します。 このメソッドは、公開メソッド
newClient(Object)
によって呼び出されます。- パラメータ:
connectionId
- 新しい接続のID。 このコネクタ・サーバーによって開かれたすべての接続は、それぞれ異なるIDを持つ。 このパラメータがnullの場合の動作は不定。subject
- 認証済みのサブジェクト。 nullも可。- 戻り値:
- 新しく生成された
RMIConnection
。 - 例外:
IOException
- 新しいクライアント・オブジェクトを作成またはエクスポートできない場合。
-
closeClient
protected abstract void closeClient(RMIConnection client) throws IOExceptionmakeClient
で作成されたクライアント接続を終了します。- パラメータ:
client
- 以前にmakeClient
によって返された、closeClient
メソッドがまだ1回も呼び出されていない接続。client
がnullの場合を含めて、何らかの条件違反があった場合、動作は不定になる。- 例外:
IOException
- クライアント接続を終了できない場合。
-
getProtocol
protected abstract String getProtocol()このオブジェクトのプロトコル文字列を返します。 文字列はRMI/JRMPの場合は
rmi
です。- 戻り値:
- このオブジェクトのプロトコル文字列。
-
clientClosed
protected void clientClosed(RMIConnection client) throws IOExceptionmakeClient
によって作成されたクライアント接続の終了時に呼び出されるメソッドです。makeClient
を定義するサブクラスは、生成されたオブジェクトのclose
メソッドが呼び出されたとき、このメソッドが呼び出されるように配置する必要があります。 これにより、RMIServerImpl
の接続リストからの削除が可能になります。 このリスト内にclient
が存在していなくても、エラーではありません。このメソッドは、接続リストから
client
を削除したあと、closeClient(client)
を呼び出します。- パラメータ:
client
- 終了したクライアント接続。- 例外:
IOException
-closeClient(javax.management.remote.rmi.RMIConnection)
がこの例外をスローする場合。NullPointerException
-client
がnullである場合。
-
close
public void close() throws IOExceptionこの接続サーバーを終了します。 このメソッドは、新しいクライアント接続をこれ以上受け付けないようにするため、最初に
closeServer()
メソッドを呼び出します。 すると、makeClient
によって返された残りのRMIConnection
オブジェクトのそれぞれに対して、そのclose
メソッドが呼び出されます。このメソッドが2回以上呼び出されたときの動作は指定されていません。
closeServer()
がIOException
をスローした場合、個々の接続は終了します。その後、このメソッドからIOException
がスローされます。closeServer()
は正常に復帰したが、1つ以上の接続がIOException
をスローした場合、すべての接続が終了したあと、これらのIOException
のうちの1つがこのメソッドからスローされます。 1つ以上の接続がIOException
をスローした場合、このメソッドからスローされる内容は不定になります。- 定義:
close
、インタフェース:AutoCloseable
- 定義:
close
、インタフェース:Closeable
- 例外:
IOException
-closeServer()
またはいずれかのRMIConnection.close()
呼出しがIOException
をスローした場合。
-
closeServer
protected abstract void closeServer() throws IOExceptionclose()
によって呼び出され、コネクタ・サーバーを終了します。 このメソッドの終了後、コネクタ・サーバーは新しい接続を一切受け付けなくなります。- 例外:
IOException
- コネクタ・サーバーの終了に失敗した場合。
-