快速业务通道

用RMI和CORBA进行分布式Java编程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
ose(); } catch(Exception e) { System.err.println("FileServer exception: "+ e.getMessage()); e.printStackTrace(); } } }

运行应用程序

为了运行应用程序,我们需要生成存根和基干,编译服务器和客户机,启动 RMI注册表,最后是启动服务器和客户机。

为了生成存根和基干,请使用rmic编译器:

prompt> rmic FileImpl

这将生成两个文件:FileImpl_Stub.class和 FileImpl_Skel.class。存根是一个客户机代理,基干是一个服 务器基干。

下一步是编译服务器和客户机。用javac编译器来做这件事。但是请注意:如 果服务器和客户机是在两台不同的机器上开发的,为了编译客户机,需要把接口 (FileInterface)复制一份。 最后,启动RMI注册表并运行服务器和客户机。为了在缺省的端口号上启动 RMI注册表,请在Windows中使用命令rmiregistry或 start rmiregistry。为了在其他端口号上启动RMI注册表,可以 提供该端口号作为RMI注册表的一个参数:

prompt> rmiregistry portNumber

运行RMI注册表之后,就可以启动服务器FileServer了。但是, 因为在服务器应用程序中正在使用RMI安全管理员,所以需要一个安全方针来与之 相配。下面是一个安全方针范例:

grant { permission java.security.AllPermission "", ""; };

注意: 这只是一个方针的例子。它允许任何人做任何事情。对于关键 性事务应用程序,你需要指定更严格的安全方针。

现在,为了启动服务器,需要把除了客户机类 (FileClient.class)之外的所有类(包括存根和基干)复制一 份。请使用以下命令启动服务器,假定安全方针位于文件policy.txt中:

prompt> java -Djava.security.policy=policy.txt FileServer

为了在另一台机器上启动客户机,需要复制远程接口 (FileInterface.class)和存根 (FileImpl_Stub.class)。请使用以下命令启动客户机:

prompt> java FileClient fileName machineName

其中fileNamefileName是要下载的文件,machineName 是该文件所在的机器(运行文件服务器的那台机器)。如果一切顺利,那么客户 机就存在了,下载完的文件保存在本地的机器上。

要运行前面介绍的客户机,需要复制接口和存根。更 适当的方法是使用RMI动态类加载。这种做法不需要复制接口和存根。取而代 之的做法是,可以把接口和存根放在共享的目录里供服务器和客户机使用,在 需要存根或者基干的时候,RMI类加载器就会自动下载它。举例来说,用以下命 令运行客户机:java -Djava.rmi.server.codebase=http://hostname/locationOfClasses FileClient fileName machineName。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号