1.         RMI最简单的一个实例,思路是你在服务器端创建一个方法addData(),该方法实现两个整数的相加,然从客户端远程调用这个方法实现相加功能 
  
2.    我们一步一步来实现,首先定义远程接口-----远程接口类 
import java.rmi.*; 
import java.rmi.server.*; 
  
public interface AddServer extends Remote 
{ 
       public int addData(int a,int b)throws RemoteException; 
} 
  
2.         定义和实现服务器中远程方法-----服务器类 
import java.rmi.*; 
import java.rmi.server.*; 
//注意要扩展UnicastRemoteObject类 
public class AddServerImpl extends UnicastRemoteObject implements AddServer 
{ 
       public AddServerImpl()throws RemoteException 
       { 
              super(); 
       } 
       public int addData(int a,int b)throws RemoteException 
       { 
              return a+b; 
       } 
       public static void main(String s[]) 
       { 
              try 
              { 
                     //创建该远程对象 
                     AddServerImpl instance=new AddServerImpl(); 
                     //注册该远程对象 
Naming.rebind("add",instance); 
                     System.out.println("Server Registered"); 
              } 
              catch(Exception e){System.out.println(e);} 
       } 
} 
  
3.         定义与实现客户-----客户类 
import java.io.*; 
import java.rmi.*; 
  
public class AddClient 
{ 
       public AddClient() 
       { 
              try 
              { 
                     BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); 
                     System.out.println("Please enter first number:"); 
                     System.out.flush(); 
                     String s=input.readLine(); 
                     int num1=Integer.parseInt(s); 
                     System.out.println("Please enter second number:"); 
                     System.out.flush(); 
                     s=input.readLine(); 
                     int num2=Integer.parseInt(s); 
                      
                     AddServer addserver=(AddServer)Naming.lookup("rmi://127.0.0.1/add"); 
                      
                     int i=addserver.addData(num1,num2); 
                     System.out.print("Result is:"+i); 
                      
              } 
              catch(Exception e){System.out.println(e);} 
       } 
       public static void main(String s[]) 
       { 
              new AddClient(); 
       } 
} 
  
4.         编译javac *.java 
  
5.         生成Stub和Skeleton 
在命令提示符下:rmic  AddServerImpl 
这时你会发现在文件夹中多了两个文件AddServerImpl_Skel.class和AddServerImpl_Stub.class 
  
6.         创建安全策略 
在命令提示符下:policytool 
点击Add Policy Entry按钮 
点击Add Permission按钮 
在Permission列表框中选取:AllPermission 
点击ok 
点击Done按钮 
从File菜单总选择Save as,打入文件名.java.policy,接着保存在你那个登录用户名的文件夹下面 
7.         启动RMI远程注册表 
在命令提示符下:start  rmiregistry 
  
8.         启动服务器 
在命令提示符下:java  AddServerImpl 
  
  
9.         启动客户 
在命令提示符下:java  AddClient 
  
10.   如果你是在自己机器上调试的话,那么到第九步就可以了,如果你在两台机器上调试的话,需要改一下AddClient代码中的IP地址,并且把AddClient.class,AddServer.class和AddServerImpl_Stub.class放到你打算作为客户端的那台机器上去,注意其它文件不要放,否则你就等于把服务端代码都告诉别人了。 
  
  
 
  
 
  |