import java.rmi.*; import java.util.*; public class MyServer extends java.rmi.server.UnicastRemoteObject implements Server { public MyServer() throws RemoteException { } // Implement the Server interface public Date getDate() throws RemoteException { return new Date(); } public Object execute( WorkRequest work ) throws RemoteException { return work.execute(); } public StringEnumeration getList() throws RemoteException { return new StringEnumerator( new String [] { "Foo", "Bar", "Gee" } ); } public void asyncExecute( WorkRequest request , WorkListener listener ) throws java.rmi.RemoteException { Object result = request.execute(); System.out.println("async req"); listener.workCompleted( request, result ); System.out.println("async complete"); } public static void main(String args[]) { System.setSecurityManager(new RMISecurityManager()); try { Server server = new MyServer(); Naming.rebind("NiftyServer", server); System.out.println("bound"); } catch (java.io.IOException e) { System.out.println("// Problem registering server"); } } }