基于RMI的分布式应用在部署上的一些问题

lifejoy 2005-02-02 04:25:28
我在构架的一套系统,我希望采用RMI作为通讯协议,简单的东西都进行过测试了,但是我发现当我们把应用打包(打成可执行的jar)后再次执行就发现,会出现一些问题,RMIServer会产生无法找到Stub的异常,我是采用JB的来进行打包的,打包后出现的问题,我的方法是采用RMIREGISTERY参数来解决,但是随之问题又出现了,我要求Registry不能停止啊.谢谢各位高贤!
...全文
303 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubofan2004 2005-04-12
  • 打赏
  • 举报
回复
免费培训信息

本周六(4月16日)软件工程师班免费听讲(可以免费听三天课程)。系列课程由浅入深针
对无软件开发基础,且有志于从事IT行业的人。感兴趣者,请速致电010-51607418定
座。(详情请登陆http://www.zhihuigu.com 和 http://www.zhihuigu.net)

特邀著名IT专家,Microsft,Sun高级技术培训师吕智良先生现场授课。座位有限,有
兴趣者请在本周四之前电话定位。

第一天课程:Windows Server 2003 的配置与管理
课程安排如下:

第一天部分课程安排如下:

PPT1
内容提要
基本概念介绍(硬件/软件/操作系统)
Microsoft操作系统的发展历程
Windows Server 2003的安装

PPT2
软件、硬件、操作系统概念和分类
微软公司(Microsoft)操作系统的发展
家庭用户
DOS (Disk Operating System) – 磁盘操作系统
Windows 3.x – 视窗操作系统
Windows 95 – 视窗95
Windows 98 – 视窗98
Windows ME (Millennium ) – 视窗千年版
Windows XP Home Edition – XP家庭版
商业用户
Windows NT Server/Windows NT Workstation
Windows 2000 Server/Windows 2000 Professional
Windows Server 2003/Windows XP Professional

PPT3
实战项目: 安装 Windows Server 2003 企业版
形式:两人一组,参考书上(P12-P32)协商讨论完成。
提供的资源:
VMVare 5.0 虚拟机系统
Alcohol 120%虚拟光驱软件
Windows Server 2003 企业版镜像磁盘文件
助教现场指导答疑
时间:2个小时
此实战项目的意义
熟悉Windows Server 2003的完整安装过程
熟悉使用VMVare 5.0虚拟机软件系统
熟悉使用Alcohol 120%虚拟光驱软件
增加实际动手能力和团队协作能力

PPT4
本章总结

本章主要介绍一些基本的概念,了解 Microsoft Windows 一系列操作系统的发展
过程。最后通过实际安装Windows Server 2003,以加深对该操作系统的理解并掌握
VMWare和Alcohol 120%等常用工具软件的使用。
本章书本上内容理论部分太深,涉及面太广,而且和实际工作联系不是很紧密,不建议
学生全文阅读。


智慧谷程序员俱乐部广聚各路好手!
www.zhihuigu.com
manboo 2005-04-12
  • 打赏
  • 举报
回复
可以指定java.rmi.server.codebase="file://..xxx.jar" 来实现这个功能
lifejoy 2005-02-18
  • 打赏
  • 举报
回复
UP
Weilibo 2005-02-18
  • 打赏
  • 举报
回复
很是受用,收藏一下,上顶
lifejoy 2005-02-18
  • 打赏
  • 举报
回复
其实是这个样子的,我们在另外的一个包中定义了一组类,我想使用他们来作为方RMI中使用的类型,因此才会残生,其他东西找不到。
lifejoy 2005-02-05
  • 打赏
  • 举报
回复
RMI在注册对象的时候,需要将存根做为一个shadow,并切根据shadow来实例化具体的实现啊,因此RMIServer是需要知道存根的存在的,打包的时候,存根和/代理都被打包进了jar,但是jb生成的,MANIFEST.MF中没有相应的指定虚拟机参数,因此在运行的时候是会产生无法找到存根和代理的情况的。
GJA106 2005-02-05
  • 打赏
  • 举报
回复
不可能。我们的产品也用到RMI,所有类包括:代理/存根都打到包中,没有出现楼主所说的现象?
跟RMIServer没有直接的关系。

myth822 2005-02-04
  • 打赏
  • 举报
回复
手动启动Registry不行吗
GJA106 2005-02-04
  • 打赏
  • 举报
回复
1.把应用打包(打成可执行的jar),有打包前生成代理/存根(xx_Skel.class/_Stub.class)了吗?包中必需有这两个class文件,RMI才可以正常运行。
在JB中配置生成代理/存根操作如下:
JB-->工程栏-->选中要生成代理/存根的java文件-->右击-->Properties-->Build-->选中Generate RMI Stub/Skelecton(Option参数楼主可以自己作选择)

2.通过代码来注册RMI服务端口,只要程序不停Registry也不会自动停,程序结束时,Registry会自动注销。
java.rmi.registry.LocateRegistry.createRegistry(10000);
litestar 2005-02-04
  • 打赏
  • 举报
回复
今天第一次来这个板块,帮你UP吧
eshiqi 2005-02-04
  • 打赏
  • 举报
回复
up rmi皮毛都不懂
lifejoy 2005-02-04
  • 打赏
  • 举报
回复
TO:GJA106(中文字符)
不是RMIRegistry的问题,因为在RMI运行的时候虚拟机会起动一个RMIServer来管理,
RMIServer并不知道当前的ClassPath,即使是代码中检索一个类是否可疑加载,但是
如果不指定RMIServer的ClassPath也是一样无法找到类的,这时RMI比较难搞的原因之一
如果能够,一个方法是在RMIRegister起动的时候指定Codebase这个是成功的,在注册
对象的时候指定,但是对于用户来说还是太过于复杂.
lifejoy 2005-02-04
  • 打赏
  • 举报
回复
在打包中包含的了代理文件了,经过我个人的研究发现,-D后的参数不能正常打包造成了
无法运行的,我参考了一些开源的东东,多数都是采用批处理来作的,唉比较烦:)
bboonnee 2005-02-03
  • 打赏
  • 举报
回复
帮忙顶吧...正在研究
feilo 2005-02-03
  • 打赏
  • 举报
回复
up
eshiqi 2005-02-02
  • 打赏
  • 举报
回复
帮忙顶一下
lifejoy 2005-02-02
  • 打赏
  • 举报
回复
谢谢!
dabo1980 2005-02-02
  • 打赏
  • 举报
回复
RMI只懂皮毛,关注!

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧