Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重新启动后RMI注册表为空_Java_Rmi - Fatal编程技术网

Java 重新启动后RMI注册表为空

Java 重新启动后RMI注册表为空,java,rmi,Java,Rmi,我正在使用(它很酷) 不用说,我是RMI的新手。我遵循了这一点,并能够编写一个示例应用程序 我不明白为什么每次我停止并重新启动本地RMI注册表时,绑定到它的远程对象就消失了。 这是正常的行为吗?我的印象是rmi注册表可以用作持久性工具——因此当注册表停止并重新启动时,注册表的内容不应该消失 我可能错过了一些非常明显的东西,但我对rmi还是新手 感谢任何指点 默认情况下,RMI注册表不会保留有关向其注册的对象的信息。因此,您需要在每次服务器启动时注册远程对象 出于好奇,是什么让您相信注册表会以某种

我正在使用(它很酷)

不用说,我是RMI的新手。我遵循了这一点,并能够编写一个示例应用程序

我不明白为什么每次我停止并重新启动本地RMI注册表时,绑定到它的远程对象就消失了。 这是正常的行为吗?我的印象是rmi注册表可以用作持久性工具——因此当注册表停止并重新启动时,注册表的内容不应该消失

我可能错过了一些非常明显的东西,但我对rmi还是新手


感谢任何指点

默认情况下,RMI注册表不会保留有关向其注册的对象的信息。因此,您需要在每次服务器启动时注册远程对象


出于好奇,是什么让您相信注册表会以某种方式“记住”上次注册的对象?

不需要独立的注册表。您可以在服务器VM中创建注册表权限:

    Registry reg = LocateRegistry.createRegistry(1099);
    reg.bind("service", myService);

好吧,这就是我所缺少的。让我相信这一点的是,在一次培训中,他们展示了一个示例ATM应用程序(没有db),其逻辑结果是,这些数据会持久保存在注册表中(否则每次重新启动服务器时,您的银行帐户都会变为空!)。我想如果我使用远程激活,这不会有什么不同吗?我读到的一件事()是,通过远程激活,注册表中的远程对象在服务器崩溃后仍能生存?我想我至少可以澄清这一点:RMI注册表提供有关如何访问其注册应用程序的信息,但如果这些应用程序处理数据,那么它们将提供自己的持久性,我似乎明白了,绑定到数据库的对象也无法通过重新启动生存?如果服务器对象随服务器VM一起消失,注册表有什么好处?把它们放在一个虚拟机中,让它们一起生活,一起死亡。我发现RMI文档/教程有点混乱,我不会试图从我的知识不足来解释它。您可以阅读有关基本RMI:和激活的“官方”Sun教程: