java认证之JavaRMI入门实战

浏览:
字体:
发布时间:2013-12-10 00:20:53
来源:

为通过网络执行其他机器上的代码,传统的方法不仅难以学习,而且易出错。解决这个问题的最佳方法是:某些对象正好位于另一台机器,我们可以发送一条消息,并获得返回结果,就像位于自己的本机器一样。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();

}

>更多相关文章
24小时热门资讯
24小时回复排行
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2024 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();