JavaTM 2 Platform
Std. Ed. v1.3

java.rmi.server
インタフェース RemoteRef

すべてのスーパーインタフェース:
Externalizable, Serializable
既知のサブインタフェースの一覧:
ServerRef

public interface RemoteRef
extends Externalizable

RemoteRef は、リモートオブジェクトのハンドルを表します。RemoteStub は、リモート参照を使ってリモートオブジェクトへのリモートメソッド呼び出しを実行します。

導入されたバージョン:
JDK1.1
関連項目:
RemoteStub

フィールドの概要
static String packagePrefix
          サーバパッケージを初期化するための接頭辞です。
static long serialVersionUID
          JDK 1.1.x バージョンのクラスとの互換性を示します。
 
メソッドの概要
 void done(RemoteCall call)
          推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。リモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使ってパラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

 String getRefClass(ObjectOutput out)
          out ストリームに直列化される、参照型のクラス名を返します。
 void invoke(RemoteCall call)
          推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。リモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使ってパラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

 Object invoke(Remote obj, Method method, Object[] params, long opnum)
          メソッドを呼び出します。
 RemoteCall newCall(RemoteObject obj, Operation[] op, int opnum, long hash)
          推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。スタブのリモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使って、パラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

 boolean remoteEquals(RemoteRef obj)
          2 つのリモートオブジェクトが等しいかどうかを比較します。
 int remoteHashCode()
          リモートオブジェクトに対するハッシュコードを返します。
 String remoteToString()
          このリモートオブジェクトの参照を表す文字列を返します。
 
インタフェース java.io.Externalizable から継承したメソッド
readExternal, writeExternal
 

フィールドの詳細

serialVersionUID

public static final long serialVersionUID
JDK 1.1.x バージョンのクラスとの互換性を示します。

packagePrefix

public static final String packagePrefix
サーバパッケージを初期化するための接頭辞です。サーバ参照クラス (UnicastRef、UnicastServerRef など) の実装が、その接頭辞で定義されているパッケージの中に置かれていると仮定します。
メソッドの詳細

invoke

public Object invoke(Remote obj,
                     Method method,
                     Object[] params,
                     long opnum)
              throws Exception
メソッドを呼び出します。参照へのこの形式の委譲メソッド呼び出しによって、参照はリモートホストとの接続のセットアップの処理、メソッドおよびパラメータの一部に対する表現の整列化、リモートホストに対するメソッド呼び出しの通信を行うことができます。このメソッドは、リモートホスト上のリモートオブジェクトに対するメソッド呼び出しの結果を返すか、例外をスローするかのどちらかです。呼び出しが失敗した場合には RemoteException、リモート呼び出しが例外をスローした場合にはアプリケーションレベルの例外がそれぞれスローされます。
パラメータ:
obj - オブジェクトに対する RemoteStub などの RemoteRef を持つオブジェクト
method - 呼び出されるメソッド
params - パラメータのリスト
opnum - メソッドを表現するために使用されるハッシュ
戻り値:
リモートメソッド呼び出しの結果
例外:
Exception - リモートメソッド呼び出し中に例外が発生した場合
導入されたバージョン:
1.2

newCall

public RemoteCall newCall(RemoteObject obj,
                          Operation[] op,
                          int opnum,
                          long hash)
                   throws RemoteException
推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。スタブのリモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使って、パラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

このオブジェクト上で起動される新しいリモートメソッドに対して、適切な呼び出しオブジェクトを作成します。オペレーション配列とインデックスを渡すと、スタブジェネレータがオペレーションインデックスの割り当ておよび解釈を行うことが可能になります。リモート参照では、呼び出しの中で符号化するためにそのオペレーションを必要とする場合があります。
パラメータ:
obj - 呼び出しを行うリモートスタブ
op - スタブオペレーションの配列
opnum - オペレーション番号
hash - スタブまたはスケルトンのインタフェースハッシュ
戻り値:
リモート呼び出しを表す呼び出しオブジェクト
例外:
RemoteException - 新しいリモート呼び出しの開始が失敗した場合
導入されたバージョン:
JDK1.1
関連項目:
invoke(Remote,java.lang.reflect.Method,Object[],long)

invoke

public void invoke(RemoteCall call)
            throws Exception
推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。リモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使ってパラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

リモート呼び出しを実行します。 invoke はスタブを通過してしまってキャッチされないあらゆる「ユーザ」例外を立ち上げます。リモート呼び出し中に例外が立ち上がった場合には、invoke は、「ユーザ」またはリモート例外を立ち上げる前に接続をクリーンアップする作業を行う必要があります。
パラメータ:
call - リモート呼び出しを表すオブジェクト
例外:
Exception - リモートメソッド中に例外が発生した場合
導入されたバージョン:
JDK1.1
関連項目:
invoke(Remote,java.lang.reflect.Method,Object[],long)

done

public void done(RemoteCall call)
          throws RemoteException
推奨されていません。 JDK 1.2 形式のスタブは、このメソッドを使用しません。リモート参照で一連のメソッド呼び出し (newCallinvoke、および done) を使う代わりに、スタブはリモート参照で invoke(Remote, Method, Object[], int) メソッドだけを使ってパラメータの整列化、リモートメソッドの実行、および戻り値の非整列化を実行します。

JDK 1.2 のスタブは、rmic -v1.2 を使って生成されます。デフォルトでは、rmic は JDK 1.1 および Java 2 SDK と互換性のあるスタブを生成します。互換性のあるスタブは、rmic -vcompat を使っても生成できます。

リモート参照に接続をクリーンアップする (または再使用する) ことを許可します。done は、起動が成功して (例外が発生することなく) スタブに戻る場合にだけ呼び出すようにします。
パラメータ:
call - リモート呼び出しを表すオブジェクト
例外:
RemoteException - 呼び出しのクリーンアップ中にエラーが発生した場合
導入されたバージョン:
JDK1.1
関連項目:
invoke(Remote,java.lang.reflect.Method,Object[],long)

getRefClass

public String getRefClass(ObjectOutput out)
out ストリームに直列化される、参照型のクラス名を返します。
パラメータ:
out - 参照が直列化される先の出力ストリーム
戻り値:
参照型のクラス名 (パッケージ修飾なし)
導入されたバージョン:
JDK1.1

remoteHashCode

public int remoteHashCode()
リモートオブジェクトに対するハッシュコードを返します。同じリモートオブジェクトを参照する 2 つのリモートオブジェクトのスタブは、同じハッシュコードを持ちます (ハッシュテーブルのキーとしてリモートオブジェクトをサポートするため)。
戻り値:
リモートオブジェクトのハッシュコード
導入されたバージョン:
JDK1.1
関連項目:
Hashtable

remoteEquals

public boolean remoteEquals(RemoteRef obj)
2 つのリモートオブジェクトが等しいかどうかを比較します。このリモートオブジェクトが指定されたオブジェクトと同等であるかどうかを示す boolean 値を返します。このメソッドは、リモートオブジェクトがハッシュテーブルに格納されている場合に使用されます。
パラメータ:
obj - 比較対象のオブジェクト
戻り値:
2 つの Object が等しい場合は true。そうでない場合は false
導入されたバージョン:
JDK1.1
関連項目:
Hashtable

remoteToString

public String remoteToString()
このリモートオブジェクトの参照を表す文字列を返します。
戻り値:
リモートオブジェクト参照を表す文字列
導入されたバージョン:
JDK1.1

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.