001 package com.basilv.examples.rmi;
002
003
004 import java.io.Serializable;
005 import java.rmi.*;
006 import java.rmi.registry.LocateRegistry;
007 import java.rmi.server.UnicastRemoteObject;
008
009 public class TaskExecutorServer extends UnicastRemoteObject implements RemoteTaskExecutor {
010
011 public static final String REGISTRY_NAME = TaskExecutorServer.class.getName();
012
013 public TaskExecutorServer() throws RemoteException {
014 super();
015 }
016
017 public Object executeTask(Task task, Serializable argument) {
018 return task.execute(argument);
019 }
020
021 public static void main(String[] args) throws Exception {
022
023 int registryPortNumber = 1099;
024 LocateRegistry.createRegistry(registryPortNumber);
025
026 Naming.rebind(REGISTRY_NAME, new TaskExecutorServer());
027
028 System.out.println("Server running...");
029
030 Thread.sleep(15000);
031
032 System.out.println("Shutting down server...");
033 Naming.unbind(REGISTRY_NAME);
034 System.exit(1);
035 }
036
037
038 }