¡¡¡¡JavaÔ¶³Ì·½·¨µ÷Ó㬼´Java RMI£¨Java Remote Method Invocation£©ÊÇJava±à³ÌÓïÑÔÀһÖÖÓÃÓÚʵÏÖÔ¶³Ì¹ý³Ìµ÷ÓõÄÓ¦ÓóÌÐò±à³Ì½Ó¿Ú¡£Ëüʹ¿Í»§»úÉÏÔËÐеijÌÐò¿ÉÒÔµ÷ÓÃÔ¶³Ì·þÎñÆ÷ÉϵĶÔÏó¡£Ô¶³Ì·½·¨µ÷ÓÃÌØÐÔʹJava±à³ÌÈËÔ±Äܹ»ÔÚÍøÂç»·¾³Öзֲ¼²Ù×÷¡£RMIÈ«²¿µÄ×ÚÖ¼ÊǾ¡¿ÉÄܼò»¯Ô¶³Ì½Ó¿Ú¶ÔÏóµÄʹÓá£
¡¡¡¡Ò»¡¢´´½¨RMI³ÌÐòµÄ4¸ö²½Öè
¡¡¡¡1¡¢¶¨ÒåÒ»¸öÔ¶³Ì½Ó¿ÚµÄ½Ó¿Ú£¬¸Ã½Ó¿ÚÖеÄÿһ¸ö·½·¨±ØÐëÉùÃ÷Ëü½«²úÉúÒ»¸öRemoteExceptionÒì³£¡£
¡¡¡¡2¡¢¶¨ÒåÒ»¸öʵÏָýӿڵÄÀà¡£
¡¡¡¡3¡¢´´½¨Ò»¸ö·þÎñ£¬ÓÃÓÚ·¢²¼2Öж¨ÒåµÄÀà¡£
¡¡¡¡4¡¢´´½¨Ò»¸ö¿Í»§³ÌÐò½øÐÐRMIµ÷Óá£
¡¡¡¡¶þ¡¢³ÌÐòµÄÏêϸʵÏÖ
¡¡¡¡1.Ê×ÏÈÎÒÃÇÏÈ´´½¨Ò»¸öʵÌåÀ࣬Õâ¸öÀàÐèҪʵÏÖSerializable½Ó¿Ú£¬ÓÃÓÚÐÅÏ¢µÄ´«Êä¡£
1 import java.io.Serializable;
3 public class Student implements Serializable {
5   private String name;
7   private int age;
9   public String getName() {
11       return name;
13   }
15   public void setName(String name) {
17       this.name = name;
19   }
21   public int getAge() {
23       return age;
25   }
27   public void setAge(int age) {
29       this.age = age;
31   }
33 }
¡¡¡¡2.¶¨ÒåÒ»¸ö½Ó¿Ú£¬Õâ¸ö½Ó¿ÚÐèÒª¼Ì³ÐRemote½Ó¿Ú£¬Õâ¸ö½Ó¿ÚÖеķ½·¨±ØÐëÉùÃ÷RemoteExceptionÒì³£¡£
¡¡¡¡1 import java.rmi.Remote;
¡¡¡¡3 import java.rmi.RemoteException;
¡¡¡¡5 import java.util.List;
¡¡¡¡6 public interface StudentService extends Remote {
¡¡¡¡12   List<Student> getList() throws RemoteException;
¡¡¡¡14 }
¡¡¡¡3.´´½¨Ò»¸öÀ࣬²¢ÊµÏÖ²½Öè2ÖеĽӿڣ¬µ«»¹ÐèÒª¼Ì³ÐUnicastRemoteObjectÀàºÍÏÔʾд³öÎ޲εĹ¹Ô캯Êý¡£
1 import java.rmi.RemoteException;
3 import java.rmi.server.UnicastRemoteObject;
5 import java.util.ArrayList;
7 import java.util.List;
11 public class StudentServiceImpl extends UnicastRemoteObject implements
13       StudentService {
15   public StudentServiceImpl() throws RemoteException {
17   }
21   public List<Student> getList() throws RemoteException {
23       List<Student> list=new ArrayList<Student>();
25       Student s1=new Student();
27       s1.setName("ÕÅÈý");
29       s1.setAge(15);
31       Student s2=new Student();
33       s2.setName("ÀîËÄ");
35       s2.setAge(20);
37       list.add(s1);
39       list.add(s2);
41       return list;
43   }
45 }