- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章 从RMI开始 主要内容 基于RMI应用程序的剖析 使用RMI注册表工作 RMI与Socket比较 小结 8-1 基于RMI应用程序的剖析 定义远程接口 实现远程接口 使用远程接口开发客户程序 产生桩和构架 启动RMI注册表 运行服务程序和客户程序 使用RMI创建一个分布式应用程序 定义一个远程接口。 实现远程接口和服务器。 使用远程接口开发一个客户程序(一个应用程序或applet)。 产生桩和构架。 启动RMI注册表。 运行服务器和客户程序。 8-1-1 定义远程接口 远程接口定义说明了服务器提供的方法的特性,它们对客户来说是可见的。 注意:任何远程方法调用都可能失败,比如说因为服务器关机或超载而没有连上服务器时。所以,远程方法调用必须能够报告错误信息。RMI使用异常处理来解决这一问题。 远程接口特征 远程对象必须被声明为public,否则,客户将不能装载实现该远程接口的远程对象。 远程接口扩展了接口java.rmi.Remote。这样做是为了满足使一个对象成为远程对象的需要。 远程接口中声明的每一个方法必须声明为java.rmi。throws一句中必须抛出Remote-Exception。 8-1-2 实现远程接口 指定要执行的远程接口。 定义远程对象的成员器。 实现能被远程调用的方法。 创建一个安全管理器的实例,并安装它。 创建远程对象的一个(或更多个)实例。 注册一个(或更多个)远程对象到RMI注册表中。 8-1-3 使用远程接口开发客户程序 在此步中,将开发一个客户程序,它能够远程调用任意的远程接口方法。此例中,只有一个方法:add。例8.3所示为一个客户程序的实现示例,它使用了远程接口的add方法。 例8.3:ArithApp.java / * *I * @ (#) ArithApp.java * / import java.rmi. * ; import . * ; public class ArithApp{ public static void main(String argv[ ]){ int a[ ] ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int b[ ] ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; int result[ ] = new int[10]; try{ Arith obj = (Arith) Naming.lookup(//hostName/ArithServer); result = obj.add(a, b); }catch (Exception e){ System.out.println(ArithApp: + e.getMessage() ); e.printStackTrace(); } System.out.print(The sum =); for (int i = 0;i result.length;i + +){ System.out.print(result[i] + ); } System.out.println(); } } 8-1-4 产生桩和构架 一旦编写了所有的代码,就准备去产生桩和构架。桩和构架是在运行时确定,并根据需要动态装载的。 桩和构架 rmic命令行可选参数列表 8-1-5 启动RMI注册表 在Unix环境中,RMI注册表可以如下启动: % rmiregistry 注意:在Windows 95或Windows NT中,使用start rmiregistry或javaw rmiregistry启动RMI注册表。 默认情况下,该命令将运行RMI注册表,并使之监听端口1099。如果你希望启动RMI注册表在一个不同的端口,那么你需要用下面的命令行指定端口号: % rmiregistry 3000 这样,它就将启动注册表去监听端口3000。如果你启动RMI注册表在一个非默认的端口,那么你在绑定一个对象时,就要指定端口号。因此,语句: Naming.rebind(//hostname//ArithServer, obj); 就应该写成: Naming.rebind(//hostname//ArithServer:portNumber, obj); 此处,portNumber即为RMI注册表所监听的端口号。 RMI注册表管理RMI引用 8-1-6 运行服务程序和客户程序 一旦运行了RMI注册表,并且其他事情均已就绪,就可以启动服务和客户应用程序了。服务程序可以如下启动: % java ArithImpl 与此类似,使用java解释器,客户程序可以如下启动: % java ArithApp 最后一步将显示下列输出: The rum = 2 4
您可能关注的文档
- 新Java程序设计 教学课件 彭正文 卢昕 第11章 Swing组件.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第12章多线程.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第13章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第14章.ppt
- 新Java程序设计 教学课件 彭正文 卢昕 第15章 Java与数据库编程.ppt
- 新Java程序设计 教学课件 孙燕 等 1.ppt
- 新Java程序设计 教学课件 孙燕 等 2.ppt
- 新Java程序设计 教学课件 孙燕 等 3.ppt
- 新Java程序设计 教学课件 孙燕 等 4.ppt
- 新Java程序设计 教学课件 孙燕 等 5.ppt
- 新Java网络程序设计 教学课件 房晓溪 第9章 高级RMI编程.ppt
- 新Java网络程序设计 教学课件 房晓溪 第10章 使用Java 2进行RMI编程.ppt
- 新Java网络程序设计 教学课件 房晓溪 第11章 JSP技术基础.ppt
- 新Java网络程序设计 教学课件 房晓溪 第12章 Java Servlet 应用技术.ppt
- 新Java网络程序设计 教学课件 房晓溪 第13章 可扩展标志语言(XML)编程.ppt
- 新Java网络程序设计 教学课件 房晓溪 第14章 可扩展样式XSL编程.ppt
- 新Java网络程序设计 教学课件 房晓溪 第15章 用Servlet与XSL结合开发WEB应用程序.ppt
- 新Java网络程序设计 教学课件 房晓溪 第16章 Java 网络程序设计实例.ppt
- 新Java项目化教程 电子教案 邹承俊 开发平台搭建.ppt
- 新Java项目化教程 电子教案 邹承俊 项目二记事本.ppt
文档评论(0)