Java RMI

Setup.java

package examples.activation; 

import java.rmi.*;
import java.rmi.activation.*;
import java.util.Properties;

public class Setup {

  // This class registers information about the ActivatableImplementation
  // class with rmid and the rmiregistry
  //
  public static void main(String[] args) throws Exception {

    System.setSecurityManager(new RMISecurityManager());

    // Because of the 1.2 security model, a security policy should 
    // be specified for the ActivationGroup VM. The first argument
    // to the Properties put method, inherited from Hashtable, is 
    // the key and the second is the value 
    // 
    Properties props = new Properties(); 
    props.put("java.security.policy", 
              "/home/rmi_tutorial/activation/policy");

    ActivationGroupDesc.CommandEnvironment ace = null; 
    ActivationGroupDesc exampleGroup = new ActivationGroupDesc(props, ace);
 
    // Once the ActivationGroupDesc has been created, register it 
    // with the activation system to obtain its ID
    //
    ActivationGroupID agi = 
      ActivationGroup.getSystem().registerGroup(exampleGroup);

    // The "location" String specifies a URL from where the class   
    // definition will come when this object is requested (activated).
    // Don't forget the trailing slash at the end of the URL 
    // or your classes won't be found.
    //       
    String location = "file:/home/rmi_tutorial/activation/";

    // Create the rest of the parameters that will be passed to
    // the ActivationDesc constructor
    //
    MarshalledObject data = null;

    // The location argument to the ActivationDesc constructor will be used 
    // to uniquely identify this class; it's location is relative to the  
    // URL-formatted String, location.
    //
    ActivationDesc desc = new ActivationDesc 
      (agi, "examples.activation.ActivatableImplementation", 
       location, data);
  
    // Register with rmid
    //
    MyRemoteInterface mri = (MyRemoteInterface)Activatable.register(desc);
    System.out.println("Got the stub for the ActivatableImplementation");
        
    // Bind the stub to a name in the registry running on 1099
    // 
    Naming.rebind("ActivatableImplementation", mri);
    System.out.println("Exported ActivatableImplementation");

    System.exit(0);
  }

}

José M. Vidal .

18 of 22