Java RMI Example

TO execute Java RMI Program, follow below steps.

1. Create a file called “HelloWorldRMIServer.java” as following code.

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class HelloWorldRMIServer
{
        public static void main(String[] argv)
                {

                System.setSecurityManager(new RMISecurityManager());

                try
                   {
                        HelloWorldRMIImpl implementation = new HelloWorldRMIImpl ("HelloWorldRMIImplInstance", "Hello World! from Java RMI Server machine-MITindia");
                    }
                catch (Exception e)
                    {
                System.out.println("Exception occurred: " + e);
                     }
                }
}

2. Next, create a file called “HelloWorldRMIInterface.java” as following code.

import java.rmi.Remote;

public interface HelloWorldRMIInterface extends Remote
{
        public String sayHello() throws java.rmi.RemoteException;
}

3. Next, create a file called “HelloWorldRMIImpl.java” as following code in it.

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class HelloWorldRMIImpl extends UnicastRemoteObject implements HelloWorldRMIInterface
{

                   public String message;

        public HelloWorldRMIImpl(String name, String msg) throws RemoteException
                {
                super();
                try
                 {
                   Naming.rebind(name, this);
                   message = msg;
                 }
                catch(Exception e)
                 {
                 System.out.println("Exception occurred: " + e);
                 }
                }
        public String sayHello()
                {
                return message;
                }
}

4. Create another file called “HelloWorldRMIClient.java” as following code.

import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;

public class HelloWorldRMIClient
{
        public static void main(String[] argv)
                {

                System.setSecurityManager(new RMISecurityManager());

                if (argv.length != 1)
                 {
                             System.out.println("usage: java myRMIClient <IP address of host running RMI server>");
                             System.exit(0);
                 }
                   String serverName = argv[0];
                try
                 {

           HelloWorldRMIInterface myServerObject = (HelloWorldRMIInterface) Naming.lookup("rmi://"+serverName+"/HelloWorldRMIImplInstance");
                        String message = myServerObject.sayHello();
                        System.out.println("Message From Server is " + message);
                  }
                catch(Exception e)
                  {
                     System.out.println("Exception occured: " + e);
                     System.exit(0);
                  }
                   System.out.println("RMI connection successful");
                }


}

5. Now, Compile all above 4 programs, one by one. [Don’t run now, just compile all!]

6. Create a “permit.policy” file with following syntax in. (use notepad to create this file and save as “permit.policy”)

grant { 
   permission java.net.SocketPermission "*:1024-65535",
          "connect,accept,resolve";
   permission java.net.SocketPermission "*:1-1023", 
           "connect,resolve";
};

 

7.Go to command prompt  and type: start rmiregistry

8. First run server file called “HelloWorldRMIServer” with following style of running.

java -Djava.security.policy=permit.policy HelloWorldRMIServer
9. Next, run client file “HelloWorldRMIClient” as following style of running (in another command prompt and please keep open server command, don’t close it!)

java -Djava.security.policy=permit.policy  HelloWorldRMIClient 127.0.0.1

That’s all for running RMI Programs, now keep executing some more RMI programs for practice!

Share
Share
Scroll to Top