Java远程方法调用RMI介绍与示例.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 远程方法调用 RMI 介绍与示例 1、定义 Java 远程方法调用 ,即 JavaRMI (JavaRemoteMethodInvocation )是 Java 编程语言里,一种用于实现远程过程调用 的应用程序编程接口 。它使客户机上运行的程序可以调用远程服务器上 的对象。远程方法调用特性使 Java 编程人员能够在网络环境中分布操作。RMI 全部的宗旨就是尽可能简化远程接 口对象的使用。 JavaRMI 极大地依赖于接口。在需要创建一个远程对象的时候,程序员通过传递一个接口来隐藏底层的实现细节。客户端得到的远程对象句柄正好与本地的根代码连 接,由后者负责透过网络通信。这样一来,程序员只需关心如何通过自己的接口句柄发送消息。 接口的两种常见实现方式是:最初使用JRMP (JavaRemoteMessageProtocol ,Java 远程消息交换协议)实现;此外还可以用与 CORBA 兼容的方法实 现。RMI 一般指的是编程接口,也有时候同时包括 JRMP 和 API(应用程序编程接口 ),而 RMI-IIOP 则一般指 RMI 接口接管绝大部分的功能,以支持 CORBA 的实现。 最初的 RMIAPI 设计为通用地支持不同形式的接口实现。后来,CORBA 增加了传值(passbyvalue )功能,以实现 RMI 接口。然而 RMI-IIOP 和 JRMP 实现的接口并不完全一致。 所使用 Java 包的名字是 java.rmi 。 2、例子 创建 RMI 程序的 6 个步骤: 1、定义一个远程接口的接口,该接口中的每一个方法必须声明它将产生一个 RemoteException 异常。 2、定义一个实现该接口的类。 3、使用 RMIC 程序生成远程实现所需的残根和框架。 4、创建一个服务器,用于发布 2 中写好的类。 5、创建一个客户程序进行 RMI 调用。 6、启动 rmiRegistry 并运行自己的远程服务器和客户程序 packagermi;一、定义一个远程接口的接口,该接口中的每一个方法必须声明它将产生一个 RemoteException 异常 packagermi; importjava.rmi.RemoteException; importjava.rmi.RemoteException; /** * 第一步,定义一个远程接口,该接口中的每一个方法必须声明它将产生一个 RemoteException 异常 */ //接口里定义一个返回字符串的远程方法 SayHello(),这个远程接口 I_Hello 必须是 public 的 // 它 必 须 从 java.rmi.Remote 继 承 而 来 , 接 口 中 的 每 一 个 方 法 都 必 须 抛 出 远 程 异 常 java.rmi.RemoteException。 // //抛出这个异常的原因:由于任何远程方法调用实际上要进行许多低级网络操作,因此网络错误可能在调用过程中随时发生 //因此,所有的 RMI 操作都应放到 try-catch 块中 //需要从 Remote 继承 publicinterfaceI_Helloextendsjava.rmi.Remote{ //需要抛出 remote 异常 publicStringSayHello()throwsRemoteException; } packagermi;importjava.rmi.*; packagermi; importjava.rmi.*; importjava.rmi.server.UnicastRemoteObject; /** * 第二步,定义一个实现远程接口的类 */ //实现接口的类必须继承 UnicastRemoteObject 类,扩展 java.rmi.server.UnicastRemoteObject publicclassHelloextendsUnicastRemoteObject// 必须从 UnicastRemoteObject 继承 implementsI_Hello{ publicHello()throwsRemoteException{// 需要一个抛出 Remote 异常的默认初始化方法 } publicStringSayHello(){// 这个是实现 I_Hello 接口的方法 returnHelloworld!!; } } 三、使用 RMIC 程序生成远程实现所需的残根 Stub 和 框架这一步是关键,也是最容易出问题的地方,需要多说几句: 在 RMI 中,客户机上生成的调动调用参数和反调动返回值的代码称为残根。有的书上称这部分代码为“主干”。 服务器上生成的反调动调用参数和进行实际方法调用调动返回值的代码称为框架二中的 Hello

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档