| CONTENTS | PREV | NEXT | Java Remote Method Invocation |

java.rmi.Remote Interfacejava.rmi.Remote.java.rmi.RemoteException (or one of its superclasses
such as java.io.IOException or
java.lang.Exception) in its throws clause, in addition
to any application-specific exceptions (note that application
specific exceptions do not have to extend
java.rmi.RemoteException).java.rmi.Remote is a marker interface
that defines no methods:
public interface Remote {}
A remote interface must at least extend the interface
java.rmi.Remote (or another remote interface that
extends java.rmi.Remote). However, a remote interface
may extend a non-remote interface under the following condition:
BankAccount
defines a remote interface for accessing a bank account. It
contains remote methods to deposit to the account, to get the
account balance, and to withdraw from the account:
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;
}
The next example shows a
valid remote interface Beta that extends a non-remote
interface Alpha, which has remote methods, and the
interface java.rmi.Remote:
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 Classjava.rmi.RemoteException class is the superclass of
exceptions thrown by the RMI runtime during a remote method
invocation. To ensure the robustness of applications using the RMI
system, each remote method declared in a remote interface must
specify java.rmi.RemoteException (or one of its
superclasses such as java.io.IOException or
java.lang.Exception) in its throws clause.
The exception
java.rmi.RemoteException is thrown when a remote
method invocation fails for some reason. Some reasons for remote
method invocation failure include:
RemoteException is a checked exception (one
that must be handled by the caller of a remote method and is
checked by the compiler), not a RuntimeException.
RemoteObject Class and its Subclassesjava.rmi.server.RemoteObject and its
subclasses, java.rmi.server.RemoteServer and
java.rmi.server.UnicastRemoteObject and
java.rmi.activation.Activatable.
java.rmi.server.RemoteObject provides
implementations for the java.lang.Object methods,
hashCode, equals, and
toString that are sensible for remote objects.UnicastRemoteObject and Activatable. The
subclass identifies the semantics of the remote reference, for
example whether the server is a simple remote object or is an
activatable remote object (one that executes when invoked).java.rmi.server.UnicastRemoteObject class
defines a singleton (unicast) remote object whose references are
valid only while the server process is alive.java.rmi.activation.Activatable is an
abstract class that defines an activatable remote object
that starts executing when its remote methods are invoked and can
shut itself down when necessary.