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