| 目次|前|次 | Java Remote Method Invocation |
java.rmi.server.UnicastRemoteObjectを拡張することによりjava.rmi.server.RemoteObjectやjava.rmi.server.RemoteServerクラスが提供するリモート動作を継承する。BankAcctImplはBankAccountリモート・インタフェースを実装し、java.rmi.server.UnicastRemoteObjectクラスを拡張しています。 package mypackage; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; public class BankAccountImpl extends UnicastRemoteObject implements BankAccount { private float balance = 0.0; public BankAccountImpl(float initialBalance) throws RemoteException { balance = initialBalance; } public void deposit(float amount) throws RemoteException { ... } public void withdraw(float amount) throws OverdrawnException, RemoteException { ... } public float getBalance() throws RemoteException { ... } }
ノート:
java.rmi.server.UnicastRemoteObject以外のいくつかのクラスを拡張できます。 ただし実装クラスは、オブジェクトのエクスポート(UnicastRemoteObjectコンストラクタによって処理される)、およびjava.lang.Objectクラスから継承されるhashCode、equals、およびtoStringメソッドの正しいリモート・セマンティクスの実装(必要な場合)に対する責任を負わなければなりません。 RMIClientSocketFactoryおよびRMIServerSocketFactory型のパラメータを含まないバージョンのUnicastRemoteObject.exportObjectメソッドまたはUnicastRemoteObjectコンストラクタを使用してオブジェクトをエクスポートすると、リモート・オブジェクトはすべてのローカル・アドレスにエクスポートされます。 リモート・オブジェクトを特定のアドレスにエクスポートするには、「RMIソケット・ファクトリ」を参照してください。