RMI(远程方法调用)入门

来源:互联网 发布:保健品网络推广方案 编辑:程序博客网 时间:2024/05/21 14:02

一、rmi基于接口开发,先写接口,借口要继承remote接口:

package com.ppt.rmi;import java.rmi.Remote;public interface PersonService extends Remote{Person getPreson() throws Exception;}

二、写一个实现类,实现类要继承UnicastRemoteObject:

package com.ppt.rmi;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;@SuppressWarnings("serial")public class PersonServiceImpl extends UnicastRemoteObject implementsPersonService {protected PersonServiceImpl() throws RemoteException {super();}public Person getPreson() {Person p = new Person();p.setId(520);p.setName("ppt");;p.setPassword("password");return p;}}

三、一个要传输的对象,要实现Serializable接口:

package com.ppt.rmi;import java.io.Serializable;public class Person implements Serializable{/** *  */private static final long serialVersionUID = -3360449589330172440L;private int id;private String name;private String password;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;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + ", password=" + password+ "]";}}

四、服务器端测试:

package com.ppt.rmi;import java.rmi.Naming;import java.rmi.registry.LocateRegistry;public class TestServer {public static void main(String[] args) throws Exception {PersonService service = new PersonServiceImpl();LocateRegistry.createRegistry(9999);Naming.rebind("rmi://127.0.0.1:9999/personService", service);}}

五、客户端测试:

package com.ppt.rmi;import java.rmi.Naming;public class TestClient {public static void main(String[] args) throws Exception {PersonService service = (PersonService)Naming.lookup("rmi://127.0.0.1:9999/personService");Person p = service.getPreson();System.out.println(p.toString());}}

够简单吧,over

0 0