前几天提问了几个问题 解决了一部分 剩下的几个再提一下 希望大家帮忙解释一下
问题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指定的路径下装载类?