用RMI开发基于Java的企业分布式应用 - 编程入门网
Info()来实现编码,将所有模块至于新建的enterprise.distribute包中,代码如下:
2、实现远程接口 这是一个实现远程对象的类。如果实现了远程接口,就能够覆盖(override)该对象中的所有方法,因此,远程对象的实现类将真正包含我们希望导出的方法的代码。 在远程信息发布系统中,我们至少实现一个远程接口的对象,它就是远程可访问的对象。这里,InfoDistributeService类可以为我们生成远程可访问对象的实例:
InfoDistributeService类实现远程接口InfoDistributeRemote,并继承java.rmi.server.UnicastRemoteObject。由于符合InfoDistributeRemote接口,因此该类除构造方法之外,还应有getRemoteInfo()方法,而且必须将该方法实现。 同时我们注意到,getRemoteInfo()方法抛出了java.rmi.RemoteException异常。由于远程方法调用过程中,要进行很多的低级网络操作,因此网络错误可能在调用过程中随时发生,这样,远程接口中的每个方法(尽管这里只有一个getRemoteInfo()方法)都必须抛出RemoteException异常,而且,java.rmi.RemoteException都要在代码中显式处理,即将所有RMI活动涉及的代码都要放在try-catch块中。 3、准备供远程调用的服务器对象 这是一个作为服务器使用的类,它是相对于要访问远程方法的客户端而言的。它存储着绑定的字符串和对象。 将远程对象设置成接受远程调用就像启动了侦听ServerSocket对象的socket服务器。事实上在使用RMI时,TCP/IP协议的传输方式,在幕后发生了很多底层网络操作,但是此刻,用户不需要知道这些细节,只需要逐步导出远程对象: 在Java开发工具的较新版本JDK 1.4中,可以选择java.rmi.UnicastRemoteObject或者java.rmi.Activation.Activatable。其中,更多用到的是UnicastRemoteObject,因为它顾名思义,就是在客户机与服务器对象实例之间建立一对一连接。 4、生成Stub和Skeleton 由RMI生成的调动与反调动的远程调动代码也和Java的其它代码一样,都包含在后缀是.class的文件中。 运用RMI之后,在客户机上生成的调动参数和反调动返回值的代码称为残根(Stub),服务器上生成的反调动参数和进行实际方法调用调动返回值的代码称为框架(Skeleton)。 可以使用RMI自带的命令行工具rmic(即RMI Compiler),先扫描远程对象的.class文件,随之生成残根与框架代码。工具rmic的原理如图1。 用RMI开发基于Java的企业分布式应用(4)时间:2010-12-055、远程客户端:这是一个帮助我们访问远程方法提供帮助的类,它也是最终用户。我们将使用查找和调用远程方法的方法在该类中调用远程方法。 典型的rmic调用如下(在当前目录): 我们有了远程接口和实现,就可以用rmic对类进行编译,生成Stub和Skeleton,在命令行窗口中使用以下代码行:
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |