// Copyright MageLang Institute; Version $Id: //depot/rkahle/src/edu/modules/RMI/magercises/BootstrapServer/RMIClient.java#4 $ import java.net.*; import java.io.*; import java.util.Properties; import java.rmi.*; import java.rmi.server.*; import java.rmi.registry.LocateRegistry; /** * RMIClient is a bootstrap loaded RMI Client program. * * It implements the Runnable interface so that * it has a well known way to start. * */ public class RMIClient implements Runnable { // Instance of the Root Object(s) private Hello hello; private String rmiName; private Properties p; private MessageObject mo; public void run() { try { // Retrieve the network location of the RMIServer location // This was stored in the system properties by the bootstrap // loader program. p = System.getProperties(); rmiName = (String)p.get( "java.rmi.server.rminode" ); hello = (Hello)Naming.lookup( rmiName + "Hello" ); System.out.println( "Message from Server: " + hello.sayHello() ); for ( int i = 0; i< 10; i++ ) { mo = hello.getMessageObject(); System.out.println( "MessageObject: Class Number is #" + mo.getNumberFromClass() + " Object Number is #" + mo.getNumberFromObject() ); } } catch ( Exception e ) { System.out.println( "RMIClient encountered an error when trying to locate Hello on the server" + e ); e.printStackTrace(); } } } // class RMIClient