The basic RMI implementation in Java

来源:互联网 发布:什么叫java参数传递 编辑:程序博客网 时间:2024/05/02 01:54
package com.my.study.rmi;import java.io.Serializable;/* * Entity must implements Serializable interface */public class Person implements Serializable {private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


 

package com.my.study.rmi;import java.rmi.Remote;import java.rmi.RemoteException;/* * 1, Interface must extend Remote,  * 2, All functions must throw RemoteException */public interface IPersonService extends Remote {Person findPersonById(int id) throws RemoteException;}


 

package com.my.study.rmi;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;/* * Implementation must extends UnicastRemoteObject */public class PersonServiceImpl extends UnicastRemoteObject implementsIPersonService {private static final long serialVersionUID = 1L;public PersonServiceImpl() throws RemoteException {}public Person findPersonById(int id) throws RemoteException {Person p = new Person();p.setId(id);p.setName("XiaoMing");return p;}}


 

package com.my.study.rmi;import java.rmi.Naming;import java.rmi.registry.LocateRegistry;public class Server {public static void main(String[] args) {try {IPersonService personService = new PersonServiceImpl();// Listen 8888 portLocateRegistry.createRegistry(8888);// Rebind a object to a path, path format: rmi://127.0.0.1:<PORT>/<serviceName>Naming.rebind("rmi://127.0.0.1:8888/personService", personService);System.out.println("Service startup successfully.");} catch (Exception e) {e.printStackTrace();}}}


 

package com.my.study.rmi;import java.rmi.Naming;public class Client {public static void main(String[] args) {try {// Use Naming.lookup() to get binded object.IPersonService person = (IPersonService) Naming.lookup("rmi://localhost:8888/personService");System.out.println("Name: " + person.findPersonById(2).getName());} catch (Exception e) {e.printStackTrace();}}}


 

0 0
原创粉丝点击