一、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 implements
PersonService {
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;
}
@Override
public 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