|
JavaTM 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()
このサーバーオブジェクトのリモート処理可能なスタブを返します。 |
| クラス 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 - スタブを取得できない場合。 たとえば、RMIServerImpl がまだエクスポートされていない場合などpublic void setDefaultClassLoader(ClassLoader cl)
このコネクタサーバーのデフォルトの ClassLoader を設定します。新しいクライアント接続は、このクラスローダーを使用します。既存のクライアント接続に影響はありません。
cl - このコネクタサーバーで使用される 新しい ClassLoadergetDefaultClassLoader()public ClassLoader getDefaultClassLoader()
このコネクタサーバーで使用されるデフォルトの ClassLoader を取得します。
ClassLoadersetDefaultClassLoader(java.lang.ClassLoader)public void setMBeanServer(MBeanServer mbs)
このコネクタサーバーの接続先の MBeanServer を設定します。新しいクライアント接続は、この MBeanServer と相互に作用します。既存のクライアント接続に影響はありません。
mbs - 新しい MBeanServer。null でもよいが、 その場合、新しいクライアント接続は拒否されるgetMBeanServer()public MBeanServer getMBeanServer()
このコネクタサーバーの接続先の MBeanServer です。これは、このオブジェクト上で setMBeanServer(javax.management.MBeanServer) に渡される最後の値です。 メソッド呼び出しがまだ行われていない場合は null になります。
MBeanServersetMBeanServer(javax.management.MBeanServer)public String getVersion()
RMIServer の記述:このコネクタサーバーが認識する RMI コネクタプロトコルのバージョンです。次の形式の文字列になります。
protocol-version implementation-name
protocol-version は 0 以上の複数の整数をピリオド (.) で区切った形式になります。このドキュメントに記載されているバージョンの実装では、文字列 1.0 を使用します。
プロトコルバージョンと実装名の間には空白文字を 1 つ入力します。実装名の形式は指定されていませんが、実装のバージョン番号を含めることをお勧めします。セキュリティー上の理由などにより、実装名として空文字列を指定することもできます。
RMIServer 内の getVersion
public RMIConnection newClient(Object credentials)
throws IOException
新しいクライアント接続を作成します。このメソッドは、makeClient を呼び出し、返されたクライアント接続オブジェクトを内部リストに追加します。close() メソッドにより、この RMIServerImpl が終了した場合、リスト内の各オブジェクトの close() メソッドが呼び出されます。
この内部リスト内にクライアント接続オブジェクトが存在していても、このクライアント接続オブジェクトがガベージコレクションの対象から除外されるわけではありません。
RMIServer 内の newClientcredentials - このオブジェクトは、 RMIConnection を作成する前に、 呼び出し側の認証用としてサーバーに渡されるユーザー定義の証明書を 指定する。null も可
RMIConnectionなお、実装は、RMIConnection を実装する別のオブジェクトに、 このオブジェクトをラップできる
IOException - 新しいクライアントオブジェクトを 作成またはエクスポートできない場合
SecurityException - 指定された証明書では、 サーバーがユーザーを認証できない場合
IllegalStateException - getMBeanServer() が null の場合
protected abstract RMIConnection makeClient(String connectionId,
Subject subject)
throws IOException
新しいクライアント接続を作成します。このメソッドは、公開メソッド newClient(Object) によって呼び出されます。
connectionId - 新しい接続の ID。このコネクタサーバーによって有効化されたすべての接続は、それぞれ異なった ID を持つ。
このパラメータが null の場合の動作は不定subject - 認証済みの非認証者。null も可
RMIConnection
IOException - 新しいクライアントオブジェクトを 作成またはエクスポートできない場合
protected abstract void closeClient(RMIConnection client)
throws IOException
makeClient で作成されたクライアント接続を終了します。
client - 以前に makeClient によって返された、closeClient メソッドがまだ 1 回も呼び出されていない接続。client が null の場合を含めて、 何らかの条件違反があった場合、 動作は不定になる
IOException - クライアント接続を 終了できない場合protected abstract String getProtocol()
このオブジェクトのプロトコル文字列を返します。返される文字列は、RMI/JRMP の場合は rmi、RMI/IIOP の場合は iiop になります。
protected void clientClosed(RMIConnection client)
throws IOException
makeClient によって作成されたクライアント接続の終了時に呼び出されるメソッドです。makeClient を定義するサブクラスは、生成されたオブジェクトの close メソッドが呼び出されたとき、このメソッドが呼び出されるように設定する必要があります。これにより、RMIServerImpl の接続リストからの削除が可能になります。このリスト内に client が存在していなくても、エラーではありません。
このメソッドは、接続リストから client を削除したあと、closeClient(client) を呼び出します。
client - 終了したクライアント接続
IOException - closeClient(javax.management.remote.rmi.RMIConnection) が この例外をスローする場合
NullPointerException - client が null の場合
public void close()
throws IOException
この接続サーバーを終了します。このメソッドは、新しいクライアント接続をこれ以上受け付けないようにするため、closeServer() メソッドを呼び出します。すると、makeClient によって返された残りの RMIConnection オブジェクト 1 つ 1 つに対して、その close メソッドが呼び出されます。
このメソッドが 2 回以上呼び出されたときの動作は指定されていません。
closeServer() が IOException をスローした場合、個々の接続は終了します。 その後、このメソッドから IOException がスローされます。
closeServer() は正常に終了したが、1 つ以上の接続が IOException をスローしたとします。 この場合、すべての接続が終了したあと、これらの IOException のうちの 1 つがスローされます。1 つ以上の接続が IOException をスローした場合、このメソッドからスローされる内容は不定になります。
Closeable 内の closeIOException - closeServer() または RMIConnection.close() 呼び出しが IOException をスローした場合
protected abstract void closeServer()
throws IOException
close() によって呼び出され、コネクタサーバーを終了します。このメソッドの終了後、コネクタサーバーは新しい接続を一切受け付けなくなります。
IOException - コネクタサーバーの終了に 失敗した場合
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。