// CountServer.java, versao para execucao remota import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.*; public class CountServer { public static void main(String[] args) { // Criar e instalar o gerenciador de seguranca RMI System.setSecurityManager(new RMISecurityManager()); try { // Criar o objeto de servico CountImpl srvCount = new CountImpl(); // Obter localizacao do servico de registro Registry r; int hasPort = args[0].indexOf(':'); if (hasPort == -1) r = LocateRegistry.getRegistry(args[0]); else { String host = args[0].substring(0, hasPort); int port = Integer.parseInt(args[0].substring(hasPort+1)); r = LocateRegistry.getRegistry(host, port); } // Registrar o servico String serviceName = args[1]; r.rebind(serviceName, srvCount); System.out.println("Servidor "+ serviceName + " pronto."); } catch (ArrayIndexOutOfBoundsException ai) { System.err.println("Uso: java CountServer <locreg> <servname>"); System.err.println("\t <locreg> - host ou host:port para registro RMI"); System.err.println("\t <servname> - nome do servico no registro"); } catch (Exception e) { e.printStackTrace(); } } }