java认证之JavaRMI入门实战
为通过网络执行其他机器上的代码,传统的方法不仅难以学习,而且易出错。解决这个问题的最佳方法是:某些对象正好位于另一台机器,我们可以发送一条消息,并获得返回结果,就像位于自己的本机器一样。Java远程方法调用(RMI)特性使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。
下面介绍一下必要的步骤,创建自己的RMI对象。
一、远程接口概念:
RMI对接口有着强烈的依赖。在需要创建一个远程对象的时候,我们通过传递一个接口来隐藏基层的实施细节。所以客户得到远程对象的一个句柄正好同一些本地的根代码连接,有后者负责通过网络通信。但我们并不关心这些事情,通过自己的接口句柄发送消息即可。
创建一个远程接口时,必须遵守下列规则:
1) 远程接口必须为public属性(不能有“包访问”;也就是说,他不能是“友好的”)。否则,一旦客户试图装载一个实现了远程接口的远程对象,就会得到一个错误。
2) 远程接口必须扩展接口java.rmi.Remote。
3) 除与应用程序本身有关的违例,远程接口中的每个方法都必须在自己的throws从句中声明java.rmi.RemoteException.
4) 作为参数或返回值传递的一个远程对象(不管是直接,还是本地对象中嵌入)必须声明为远程接口,不可声明为实施类。
下面是一个远程接口示例,
//PerfectTimeI.java
//The PerfectTime remote interface
package test;
import java.rmi.*;
public interface PerfectTimeI extends Remote {
long getPerfectTime() throws RemoteException;
}
它表面上与其他的接口类似,只是对Remote进行了扩展,而且所有的方法都会“掷”出RemoteException.接口和方法都是Public的。
编译PerfectTimeI.java,生成PerfectTimeI.class(test是包,编译时注意路径)
G:RMI>javac testPerfectTimeI.java
二、远程接口的实施:
服务器必须包含一个扩展了UnicastRemoteObject类,并实现远程接口。这个类也可以含有附加的方法,但客户只能使用远程接口中的方法。因为客户是指向接口的一个句柄,而不是它的哪个类。
必须为远程对象定义构件器,即使只准备定义一个默认构件器,用它调用基础类构件器。必须把它明确地编写出来,因为它必须“掷”出RemoteException违例。
下面列出远程接口PerfectTime的事实过程:他代表精确计时服务
//PerfectTime.java
//The implementation of the PerfectTime remote object
package test;
import java.net.*;
import java.rmi.*;
import java.rmi.registry.*;
import java.rmi.server.*;
public class PerfectTime extends UnicastRemoteObject implements PerfectTimeI
{
//默认构件器,也要“掷”出RemoteException违例。
public PerfectTime() throws RemoteException {
super();
}
public long getPerfectTime() throws RemoteException {
return System.currentTimeMillis();
}
- 12-10java中的Servlet 简介
- 12-10学认证,先认识JMS(Java Message Service)
- 12-10学java认证,先知道J2EE?
- 12-10SUN JAVA程序员和开发员的认证介绍
- 12-10JDBC之Java与Oracle的两种连接方式
- 12-10java认证中有JSP?
- 12-10java认证之JavaRMI入门实战
- 12-10给在校生-JAVA学习 一条漫长的道路
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 12-05亚马逊推出新一代基础模型 任意模态生成大模
- 12-05OpenAI拓展欧洲业务 将在苏黎世设立办公室
- 12-05微软质疑美国联邦贸易委员会泄露信息 督促其
- 12-05联交所取消宝宝树上市地位 宝宝树:不会对公
- 12-04企业微信致歉:文档打开异常已完成修复