This Java tip illustrates a method of defining and Exporting a Remote Object. The interface Exporter is a high-level API for both exporting a single remote object so that it can receive remote method invocations, and unexporting that same remote object.

  1. Define the remote interface.
     import java.rmi.*;
    public interface RObject extends Remote {
        void aMethod() throws RemoteException;
  2. Define the remote object implementation.
     import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    public class RObjectImpl extends UnicastRemoteObject 
            implements RObject {
        public RObjectImpl() throws RemoteException {
        // All remote methods must throw RemoteException
        public void aMethod() throws RemoteException {
  3. Compile the remote object implementation.
      > javac
  4. Generate the skeletons and stubs.
      > rmic RObjectImpl
  5. Create an instance of the remote object and bind it to the RMI registry.
         try {
            RObject robj = new RObjectImpl();
            Naming.rebind("//localhost/RObjectServer", robj);
        } catch (MalformedURLException e) {
        } catch (UnknownHostException e) {
        } catch (RemoteException e) {