java - 运行java应用程序而不启动rmiregistry

标签 java rmi rmiregistry

当我运行使用 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() 调用。createRegistry()` 将会 如果注册表已在运行,则失败;如果未运行,则成功。

关于java - 运行java应用程序而不启动rmiregistry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337014/

相关文章:

Java RMI 在没有绑定(bind)的情况下返回对远程对象的引用

java - 如果一个线程在调用 Object.wait() 之前被中断,该线程是否会在抛出 InterruptedException 之前释放锁

java 8 streams 如何将 Map<String, List<Strings>> 转换为 List<String> 将所有字符串值?

tomcat - 自定义 JMXAuthenticator 和 Tomcat?

rmi - 远程 JMX 调用上的 NoRouteToHostException/NoSuchHostException

java - 正在运行 rmi 服务器,未找到类

java - 无法从 Spring Boot 微服务模块中的 Zuul header 获取 JWT token

java - 如何扩展由另一个类实例化的 java 类?

java.rmi.UnmarshalException : unrecognized method hash: method not supported by remote object 错误