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 {
            super();
        }
        
        // All remote methods must throw RemoteException
        public void aMethod() throws RemoteException {
        }
        
    }
    
    
  3. Compile the remote object implementation.
      > javac RObject.java RObjectImpl.java
  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) {
            
        }