001package com.basilv.examples.rmi; 002 003 004import java.io.Serializable; 005import java.rmi.*; 006import java.rmi.registry.LocateRegistry; 007import java.rmi.server.UnicastRemoteObject; 008 009public 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}