warra 2009-06-10 12:53
浏览 153
已采纳

java RMI 的问题

前几天提问了几个问题 解决了一部分 剩下的几个再提一下 希望大家帮忙解释一下

问题4 RMI服务器一直在不断的运行,客户端发出的调用请求到底是服务器上哪段程序监听的?

问题5
public static void main(String[] args) {
try {
HelloService service1 = new HelloServiceImpl("service1");
HelloService service2 = new HelloServiceImpl("service2");

Context namingContext = new InitialContext();
namingContext.rebind("rmi:HelloService1", service1);
namingContext.rebind("rmi:HelloService2", service2);
System.out.println("服务器注册了两个HelloService对象");

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
为什么这段服务器段程序在执行完System.out.println("服务器注册了两个HelloService对象");
后,当前进程仍然没有结束运行?
有书说,向注册表中注册了两个远程对象,注册表一直引用着这两个对象,使得两个对象不会结束生命周期,因而当前服务器程序也不会结束运行。不同的jvm内存中的对象难道可以引用吗?

问题 6
通过命令java -Djava.rmi.server.codebase xxxx运行程序后,可以从网络上装载class
想问一下这个codebase属性的设置作用于哪个类装载器呢?是哪个类装载器负责从codebase指定的路径下装载类?

  • 写回答

3条回答 默认 最新

  • wanghaolovezlq 2009-06-10 13:18
    关注

    看看这文章
    http://flypig.iteye.com/blog/393156

    就是因为这是服务器端程序,当然是不能停止结束,不然客户端怎么去调用服务器的请求

    不同的jvm内存中的对象当然是不可以引用的

    问题6
    这个类装载器一定是继承了URLClassLoader,这个基类就提供可从任何url的地方加载类

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog