Exemplo de preparação de servidor RMI com ativação


// CountServer.java
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.activation.*;

public class CountServer {
  public static void main(String[] args) {
    try {
	System.setSecurityManager(new RMISecurityManager());
      String serviceName = "Count001";
      // cria grupo de ativacao
      ActivationGroupDesc gdesc = new ActivationGroupDesc(null, null);
      ActivationGroupID gid = ActivationGroup.getSystem().registerGroup(gdesc);
      ActivationGroup.createGroup(gid, gdesc, 0);

      // Cria objeto servidor
      CountImpl myCount = new CountImpl("CountServer", "http://localhost:8080/local/repository/", 0);
      // Obtem referencia para registry que
      // esta executando na maquina local, operando
      // na porta default
      Registry r = LocateRegistry.getRegistry();
      // Registra a ligacao nome-objeto servidor
      // no rmiregistry 
      r.rebind(serviceName, myCount);
      // Tudo feito, servidor esta preparado
      // para receber solicitacoes de clientes
      System.out.println("Count Server ready.");
    } 
    catch (Exception e) {
      System.out.println("Exception: " + e.getMessage());
      e.printStackTrace();
    }
    System.exit(0);
  }
}