java RMI 分布式简单应用

PersonService.java

<span style="font-size:14px;">import java.rmi.*;
import java.util.*;

 
public interface PersonService extends Remote
{
	public List<Person> GetList() throws RemoteException;
}
</span>

PersonServiceImpl.java

<span style="font-size:14px;">import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.LinkedList;
import java.util.List;



class  PersonServiceImpl extends UnicastRemoteObject implements PersonService
{
	public PersonServiceImpl() throws RemoteException {
	super();
	}

	public List<Person> GetList() throws RemoteException {

	System.out.println("Get Person Start!");
	List<Person> personList=new LinkedList<Person>();

	Person person1=new Person();
	person1.setAge(25);
	person1.setId(0);
	person1.setName("Leslie");
	personList.add(person1);

	Person person2=new Person();
	person2.setAge(25);
	person2.setId(1);
	person2.setName("Rose");
	personList.add(person2);

	return personList;
	} 

}
</span>
Person.java

<span style="font-size:14px;">import java.io.Serializable;

class  Person implements Serializable
{
	private int id;
	private String name;
	private int age;


    public void setId(int id) {
	this.id = id;
	}

	public int getId() {
	return id;
	}

	public void setName(String name) {
	this.name = name;
	}

	public String getName() {
	return name;
	}

	public void setAge(int age) {
	this.age = age;
	}

	public int getAge() {
	return age;
	}

}
</span>
Program.java
<span style="font-size:14px;">import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;

class  Program
{
	public static void main(String[] args) 
	{
		try {
		PersonService personService=new PersonServiceImpl();
		//注册通讯端口
		LocateRegistry.createRegistry(6600);
		//注册通讯路径
		Naming.rebind("rmi://192.168.199.195:6600/PersonService", personService);
		System.out.println("Service Start!");
		} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
		}
	}
}
</span>
Client.java

<span style="font-size:14px;">import java.rmi.Naming;
import java.util.List;


class  Client
{
	public static void main(String[] args) 
	{
		try{
		//调用远程对象,注意RMI路径与接口必须与服务器配置一致
		PersonService personService=(PersonService)Naming.lookup("rmi://192.168.199.195:6600/PersonService");
		List<Person> personList=personService.GetList();
		for(Person person:personList){
		System.out.println("ID:"+person.getId()+" Age:"+person.getAge()+" Name:"+person.getName());
		}
		}catch(Exception ex){
		ex.printStackTrace();
		}
	}
}
</span>
(5).运行和调用
● 在服务器上执行Program
D:\RMISample\server>java Program
● 在本地客户机上运行Client
D:\RMISample\client>java Client
● 在远程客户机上运行HelloClient(须指明RMI服务器主机名或IP地址)
java HelloClient 222.222.34.34


上面代码成功解决了  --->    java RMI问题.两台电脑测试的时候遇到问题
















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值