Java rmi开发实例  泽0715 新浪博…

本文详细介绍了RMI远程接口、实现类、服务端注册与客户端调用的全过程,通过示例代码演示了如何使用RMI进行远程对象的开发与通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


下载项目: http://pan.baidu.com/s/1T6eEq

RMI的开发步骤

  1. 先创建远程接口及声明远程方法,注意这是实现双方通讯的接口,需要继承Remote
  2. 开发一个类来实现远程接口及远程方法,值得注意的是实现类需要继承UnicastRemoteObject
  3. 通过javac命令编译文件,通过java -server 命令注册服务,启动远程对象
  4. 最后客户端查找远程对象,并调用远程方法

简单实例

首先为服务建立一个Model层,注意因为此对象需要现实进行远程传输,所以必须继承Serializable

复制代码
package  rmi.model;

import  java.io.Serializable;

// 注意对象必须继承Serializable
public class  PersonEntity  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;
}
}
复制代码

创建远程接口PersonService,注意远程接口需要继承Remote

复制代码
package  rmi.service;

import  java.rmi.Remote;
import  java.rmi.RemoteException;
import  java.util.List;
import  rmi.model. * ;

// 此为远程对象调用的接口,必须继承Remote类
public interface  PersonService  extends  Remote {
public  List <</span>PersonEntity> GetList() throws RemoteException;
}
复制代码

建立PersonServiceImpl实现远程接口,注意此为远程对象实现类,需要继承UnicastRemoteObject

复制代码
package  rmi.serviceImpl;

import  java.rmi.RemoteException;
import  java.rmi.server.UnicastRemoteObject;
import  java.util.LinkedList;
import  java.util.List;

import  rmi.model.PersonEntity;
import  rmi.service. * ;

// 此为远程对象的实现类,须继承UnicastRemoteObject
public class  PersonServiceImpl  extends  UnicastRemoteObject  implements  PersonService {

public  PersonServiceImpl()  throws  RemoteException {
super ();
//  TODO Auto-generated constructor stub
}

@Override
public  List <</span>PersonEntity> GetList() throws RemoteException {
// TODO Auto-generated method stub
System.out.println("Get Person Start!");
List
<</span>PersonEntity> personList=new LinkedList<</span>PersonEntity>();

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

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

return personList;

}
复制代码

建立服务器端,在服务器端注册RMI通讯端口与通讯路径,然后通讯javac命令编译文件,通过java -server 命令注册服务。以下面代码为例,如果阁下将项目建立于D:\\RMI\RemotingService文件夹上时,则先输入D:\\RMI\RemotingService\src>javac rmi/remotingservice/Program.java获取Program.class(如何阁下使用的MyEclipse等开发工具,可跳过此步,直接在*/bin文件夹中直接调用已经生成的Program.class),然后输入D:\\RMI\RemotingService\src>java rmi/remotingservice/Program启动服务。

复制代码
package  rmi.remotingservice;

import  java.rmi.Naming;
import  java.rmi.registry.LocateRegistry;

import  rmi.service. * ;
import  rmi.serviceImpl. * ;

public class  Program{

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

最后建立客户端进行测试,注意客户调用的RMI路径必须服务器配置一致

复制代码
package  rmi.remotingclient;

import  java.rmi.Naming;
import  java.util.List;

import  rmi.model.PersonEntity;
import  rmi.service. * ;

public class  Program {
public static void  main(String[] args){
try {
// 调用远程对象,注意RMI路径与接口必须与服务器配置一致
PersonService personService = (PersonService)Naming.lookup( " rmi://127.0.0.1:6600/PersonService " );
List
<</span>PersonEntity> personList=personService.GetList();
for(PersonEntity person:personList){
System.out.println(
"ID:"+person.getId()+" Age:"+person.getAge()+" Name:"+person.getName());
}
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值