55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
import java.rmi.*;
|
|
import java.rmi.server.*;
|
|
import java.rmi.registry.*;
|
|
|
|
public class CityServerImpl implements CityServer
|
|
{
|
|
// constructor is required in RMI
|
|
CityServerImpl() throws RemoteException
|
|
{
|
|
super(); // call the parent constructor
|
|
}
|
|
|
|
// Remote method we are implementing!
|
|
public String getCapital(String country) throws RemoteException
|
|
{
|
|
System.out.println("Sending return string now - country requested: " + country);
|
|
if (country.toLowerCase().compareTo("usa") == 0)
|
|
return "Washington";
|
|
else if (country.toLowerCase().compareTo("ireland") == 0)
|
|
return "Dublin";
|
|
else if (country.toLowerCase().compareTo("france") == 0)
|
|
return "Paris";
|
|
return "Don't know that one!";
|
|
}
|
|
|
|
// main is required because the server is standalone
|
|
public static void main(String args[])
|
|
{
|
|
try
|
|
{
|
|
// First reset our Security manager - deprecated so no longer used
|
|
//if (System.getSecurityManager() == null) {
|
|
// System.setSecurityManager(new SecurityManager());
|
|
// System.out.println("Security manager set");
|
|
// }
|
|
|
|
// Create an instance of the local object
|
|
CityServer cityServer = new CityServerImpl();
|
|
System.out.println("Instance of City Server created");
|
|
CityServer stub = (CityServer) UnicastRemoteObject.exportObject(cityServer, 0);
|
|
|
|
// Put the server object into the Registry
|
|
// Naming.rebind("Capitals", stub);
|
|
Registry registry = LocateRegistry.getRegistry();
|
|
registry.rebind("Capitals", stub);
|
|
System.out.println("Name rebind completed");
|
|
System.out.println("Server ready for requests!");
|
|
}
|
|
catch(Exception exc)
|
|
{
|
|
System.out.println("Error in main - " + exc.toString());
|
|
}
|
|
}
|
|
}
|