[转]:RMI启动服务出现Stub这个ClassNotFound的解决
2014-03-18 21:37
381 查看
RMI启动服务出现Stub这个ClassNotFound的解决
Posted on 2006-03-01 00:58 云自无心水自闲 阅读(1386) 评论(0) 编辑 收藏 所属分类: Java今天一个项目要使用RMI,于是开始写了一个小示例运行一下。
1. 写接口继承Remote,并给出要实现的方法
2. 写一个方法继承UnicastRemoteObject,并实现上面的接口
3. 写Server,进行Naming.rebind
4. 运行rmic(在JDK的bin目录,而不是在JDK\jre\bin目录下)生成Stub。
这中间有一个小麻烦,举例来说如果第2步中的类名是TestObj,放在com.test包中。
那么典型的目录结构是WEB-INF\classes\com\test目录下有一个TestObj.class
这时候需要在WEB-INF\classes目录下运行命令 rmic com.test.TestObj
注意:如何运行的路径和方式不正确的话, 会出现找不到TestObj.class的错误.
5. 写Client端代码,Naming.lookup. 然后调用远程方法。
6. 运行start rmiregistry
7. java com.test.TestObjServer, 这时候出问题了,总是报告说找不到TestObj_Stub.class,奇怪啊,这个Class明明很安静地躺在目录下啊?
经过一番查找,最后目标锁定在java的版本上,因为机器安装了Oracle,而Oracle自带了JDK,而且版本较低,在环境变量中调换了JDK使用的顺序,重新运行命令。
成功了!
8. 生成policy.txt
9. java -Djava.security.policy=policy.txt TestObjClient
得到正确结果!
注意点:
启动server时如果遇到找不到stub问题,原因是rmiregistry找不到stub,而不是java com.Server找不到stub,解决方法,在stub的类同一个目录下启动rmiregistry.
相关文章推荐
- 启动windows服务时出现“错误1053:服务没有及时响应启动或控制请求”的解决方法
- SQL Server启动出现“指定的服务未安装”的解决方法
- windows启动服务出现 193 0xc1错误的解决方法
- 启动服务出现错误193: 0xc1的解决方法
- 解决mysql服务启动时候出现的 错误1067: 进程意外停止
- 【Mongodb教程 第一课补加课2 】MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法
- Oracle 11g安装出现:启动服务 OracleMTSRecoveryService 时出现操作系统错误 解决办法
- 出现服务Network List Service不能启动的解决方法
- phpstudy启动服务出现丢失MSVCR110.dll提示的解决办法
- 启动服务出现错误193: 0xc1的解决方法
- MYSQL服务无法启动1067解决办法?你可以试了很多的办法但是还是不好用?那你不妨试一下这个办法?
- spring 配置junit 启动时出现 ClassNotFound警告
- windows7下启动mysql服务出现服务名无效的原因及解决方法
- 系统恢复后,通过sqlserver服务管理器启动出现“指定的服务未安装”的解决方法
- [原]启动服务出现错误193: 0xc1的解决方法
- MongoDB下,启动服务时,出现“服务没有响应控制功能”解决方法
- MySQL配置出现启动服务失败的解决方法
- 解决MOSS2007启动单一登录服务时出现“您没有执行此操作的权限”
- ambari-server启动出现Caused by: java.lang.RuntimeException:java.lang.ClassNotFoundEception:com.mysql.jdbc.Driver问题解决办法(图文详解)
- 关于linux下tomcat启动出现cannot find ./catalina.sh以及cannot find setclasspath问题的解决办法