问题标签 [rmiregistry]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

java - SimpleDB 设置 java.rmi.NotBoundException:simpledb

我想将 SimpleDB 安装到我的计算机上。我已经将 CLASSPATH 环境变量定义为

在用户变量和系统变量 CLASSPATH 作为

和 PATH 与 CLASSPATH 相同。我打开了命令提示符并输入了 SimpleDB。然后我输入了 start rmiregistry。打开了另一个窗口。之后我输入了 java simpledb.server.Startup studentdb。输出是:

之后我去了 SimpleDB\studentClient\simpledb 并输入 java CreateStudentDB。它给了我以下错误。

rmir​​egistry 窗口已经打开,我没有关闭它。为什么它给我这样的错误?请给出一个想法。谢谢你。

0 投票
1 回答
1083 浏览

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

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

任何有知识的人都可以弄清楚发生了什么以及它如何影响程序?

0 投票
1 回答
3328 浏览

java - Java RMI在没有绑定的情况下返回对远程对象的引用

我有一个服务器和一个客户端通过 RMI 进行通信。他们的目标是共享一个简单的对象,一起处理它,然后模拟服务器断开连接。

服务器的名称绑定到 rmiregistry。客户端使用 rmiregistry 获取对服务器的远程引用。然后它使用这个引用来调用一个方法,该方法返回对他们将共享的对象的引用。将通过此共享对象进行进一步的通信。

共享对象是一个 UnicastRemoteObject,服务器拥有它的实现,并有一个方法返回对客户端的引用。

客户端知道共享对象的接口,从服务器获取远程引用,然后对其进行操作。请注意服务器应该返回一个远程引用,而不是一个序列化的副本。

这是共享对象接口

这是它的实现

这是服务器的方法,当客户端调用它时应该返回一个远程引用

如果我从客户端调用它,它会给我这个异常

java.rmi.UnmarshalException:错误解组返回;嵌套异常是:java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException:sandbox.CImpl

如果我这样写,我可以让方法工作并返回远程引用

我不明白为什么我需要再次通过注册表,尽管没有显式绑定名称,只是为了返回远程引用。客户端之前使用 rmiregistry 获得了对服务器的引用,因此引导程序完成。现在,为什么服务器不能在不知道 rmiregistry 端口(1099)的情况下只返回对客户端的引用?

额外的问题,如果服务器想让它与客户端共享的对象不可用(模拟断开连接),有没有比这样做更好的方法

编辑:如果我在共享对象的实现中扩展 UnicastRemoteObject,则该方法的第一个版本有效,但是,unexport 不起作用并返回此异常

java.rmi.ServerException:服务器线程发生RemoteException;嵌套异常是:java.rmi.NoSuchObjectException:对象未导出

EDIT2:再次检查,它确实有效,只需要在返回之前保存引用

0 投票
0 回答
406 浏览

java - 运行 RMI 客户端错误消息

我对我们在课堂上完成的练习进行了更正,因此它应该可以正常工作。但我无法正确执行它。

当我运行远程对象时,一切都很好,我在屏幕上显示了它的工作消息,但是当我之后运行客户端时,我猜到了这个错误:

我绝望了,我什么都试过了。也许有人可以一步一步地告诉我如何让它工作。谢谢你的帮助!

这是远程接口:

远程对象类:

}

客户端类

0 投票
1 回答
177 浏览

java - 尝试在 Eclipse 中创建多人游戏时出现 RMI 错误

好的,所以我在使用 RMI 制作的多人游戏时遇到了问题。

我必须使用 RMI,这是项目的要求之一。

这是我在编译时遇到的错误,我已经在后台运行了 rmiregistry。

这是我要运行的服务器:

这是 PlayerTwoControl 类,它现在几乎是空的,因为我现在只想让它运行和编译,这样我就可以测试 p2 的基本控制;

暂时没有任何事情发生在运动中。如果相关的话,我正在为游戏使用 JavaFX。

请帮忙 !

艾哈迈德

0 投票
1 回答
569 浏览

java - 如何将多个参数传递给 rmiregistry

我使用 ProcessBuilder 从我的代码中运行 rmiregistry。如何将多个参数传递给 rmiregistry 进程?

直到现在我使用-J_xmx1024m. 我知道需要传入一个附加参数(-D)。

我应该做这样的事情:

或像这样:

0 投票
1 回答
764 浏览

java - - RMI 代码库不起作用 - 注册表查找非常慢且不起作用

我不明白如何使用代码库。

我有以下结构:

HelloInterfaces.java

你好.java

服务器.java

客户端.java

客户政策

直接从 Netbeans 在服务器(带有 Linux 的虚拟机)上执行: 输出服务器:准备就绪!

在客户端,我使用选项编译了源代码--classpath .:Server.jar(其中 Server.jar 包含 HelloInterfaces.class)。

执行客户端:

两分钟后:

此外,在包含 的目录服务器上.class,我在端口 8080 上运行了一个 python httpserver。(与 NanoHTTP 相同的结果,用 java 编写的 http 服务器)

应用程序客户端联系 http 服务器,因为 python httpserver 输出:

0 投票
1 回答
462 浏览

java - Rmiregistry 与 LDAP

我最近发现了Java RMI API,我正在使用它Rmiregistry来存储和获取远程对象。

然后,我看到我们可以使用LDAP来完成这项任务。我对这种方法很感兴趣,但经过一些研究,我对这两种选择感到有些困惑。

目前,我所理解的是:

  • 两者都可以用来存储和收集远程对象
  • LDAPJNDI API访问,而 Rmiregistry 可直接使用

我想知道的是每个选项的优缺点,主要是什么时候(以及为什么)建议使用其中一个而不是另一个。

0 投票
1 回答
137 浏览

java - 多台机器上的 Java RMI 注册表对象管理

假设我的系统中有 3 个节点:node1、node2、node3,并且我在所有 3 个节点上都有远程对象。我的问题是这样的:

我可以在 node1 上运行一个注册表实例并让它管理 3 个节点上的所有对象,还是每个节点都需要自己的注册表实例?即一个注册表可以只在它自己的机器上管理对象,还是在其他机器上也可以?

0 投票
1 回答
389 浏览

java - rmir​​egistry的内存使用情况

前几天晚上,oom-killer 被召唤在一台运行良好的 linux 机器上,因为整体 RAM 的使用在某些时候失控了。/var/log/messages 中的输出让我有点惊讶,因为它显示了 rmiregistry 进程使用了​​将近 1G 的内存。我们的系统非常简单,只将一个对象绑定到 rmiregistry,它只是静态方法的集合。因此该对象本身几乎不使用内存。在正常系统上,该进程的大小更像是 30M,对我来说仍然很高。除了加载由绑定对象序列化的类,也许是绑定对象的某种表示,rmiregistry 进程中实际存储了什么?我正在使用 OpenJDK 1.6.0_33。