在不启动rmiregistry的情况下运行java应用程序



当我运行一个使用Java RMI的客户端-服务器应用程序时,我注意到即使我没有在命令提示符中启动"rmiregistry",它似乎仍然可以工作

    try { 
        LocateRegistry.getRegistry(1099).list();
        System.out.println("rmiregistry WAS started before running the application"); } 
    catch (RemoteException e) {
        LocateRegistry.createRegistry(1099);
        System.out.println("rmiregistry WAS NOT started before running the application"); }

任何有知识的人都可以弄清楚发生了什么,以及它对项目的影响?

LocateRegistry.getRegistry(1099).list();
System.out.println("rmiregistry WAS started before running the application"); }

这种信息具有误导性。getRegistry()不执行任何网络通信,因此它成功的事实并不能有效地表明注册表正在运行。只有使用getRegistry()的结果才能告诉您这一点。

你是背靠背的。您必须首先尝试createRegistry()调用,如果该调用失败,则如果注册表已在运行,则执行getRegistry() call. createRegistry()`将失败,如果未运行,则成功。

相关内容

  • 没有找到相关文章

最新更新