目次 | 前へ | 次へ | Java Remote Method Invocation |
java.rmi.Remote
インタフェースjava.rmi.Remote
インタフェースを直接または間接的に継承する。java.rmi.RemoteException
(または java.io.IOException
や java.lang.Exception
などの java.rmi.RemoteException のスーパークラスの 1 つ) が含まれている。ただし、アプリケーション固有の例外は、java.rmi.RemoteException
を継承する必要はない。java.rmi.Remote
インタフェースは、メソッドを定義しないマーカーインタフェースです。
public interface Remote {}リモートインタフェースは、少なくとも、
java.rmi.Remote
インタフェース (または java.rmi.Remote
を継承する別のリモートインタフェース) を継承する必要があります。ただし、次の条件下では、リモートインタフェースは、非リモートインタフェースを継承する場合があります。
BankAccount
は、銀行口座にアクセスするためのリモートインタフェースを定義しています。ここには、口座への預金、差引残高の取得、および口座からの引き出しを行うためのリモートメソッドが含まれています。
public interface BankAccount extends java.rmi.Remote { public void deposit(float amount) throws java.rmi.RemoteException; public void withdraw(float amount) throws OverdrawnException, java.rmi.RemoteException; public float getBalance() throws java.rmi.RemoteException; }次の例では、有効なリモートインタフェース
Beta
は、リモートメソッドおよび java.rmi.Remote
インタフェースを持つ非リモートインタフェース Alpha
を継承しています。
public interface Alpha { public final String okay = "constants are okay too"; public Object foo(Object obj) throws java.rmi.RemoteException; public void bar() throws java.io.IOException; public int baz() throws java.lang.Exception; } public interface Beta extends Alpha, java.rmi.Remote { public void ping() throws java.rmi.RemoteException; }
RemoteException
クラスjava.rmi.RemoteException
クラスは、リモートメソッド呼び出しの間に RMI ランタイムがスローする例外のスーパークラスです。RMI システムを使うアプリケーションの安定性を保つために、リモートインタフェースで宣言される各リモートメソッドは throws 節の中で java.rmi.RemoteException
(または java.io.IOException
や java.lang.Exception
などの java.rmi.RemoteException のスーパークラス) を指定する必要があります。
例外 java.rmi.RemoteException
は、リモートメソッド呼び出しがなんらかの理由で失敗したときにスローされます。リモートメソッド呼び出しは、次のような理由で失敗することがあります。
RemoteException
クラスは、チェック例外 (リモートメソッドの呼び出し側が処理する必要があり、コンパイラによってチェックされる例外) で、RuntimeException
ではありません。
RemoteObject
クラスとそのサブクラスjava.rmi.server.RemoteObject
とそのサブクラス、java.rmi.server.RemoteServer
と java.rmi.server.UnicastRemoteObject
、および java.rmi.activation.Activatable
が提供します。
java.rmi.server.RemoteObject
クラスは、リモートオブジェクトを扱える java.lang.Object
のメソッド hashCode
、equals
および toString
の実装を提供する。UnicastRemoteObject
クラスおよび Activatable
クラスによって提供される。サブクラスは、サーバーが単純なリモートオブジェクトであるか、または起動可能なリモートオブジェクト (呼び出しにより実行されるオブジェクト) であるかなどの、リモート参照のセマンティクスを識別する。java.rmi.server.UnicastRemoteObject
クラスは、サーバープロセスの活動中にだけ参照が有効な単一 (ユニキャスト) リモートオブジェクトを定義する。java.rmi.activation.Activatable
クラスは、リモートメソッドの呼び出し時に実行を開始し、必要に応じて自身を終了することができる activatable リモートオブジェクトを定義する抽象クラスである。