目次|前|次 | 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ソケット・ファクトリ」を参照してください。