问题标签 [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 回答
3705 浏览

java - 如何快速查看 RMI 注册表?

我正在尝试为分布式系统项目实施 Raft 共识算法。

我需要一些非常快速的方法来了解服务器 A 是否可以从服务器 B 访问并且 A 的分布式系统是否已启动。换句话说,可能会发生 B 可以访问 A 但 A 的云系统尚未启动的情况。所以我认为这InetAddress.getByName(ip).isReachable(timeout);还不够。

由于每个服务器的stub都被重命名为服务器的名字,所以我想先获取服务器的注册表,然后检查是否存在与服务器同名的stub:如果没有,则跳到下一个服务器,否则执行lookup(这可能需要很长时间)。这是代码的一部分:

现在的问题是服务器卡在了contains()线路上,因为消息Checking contains是打印的,而Looking up...没有打印。

为什么会发生这种情况?有什么方法可以加快这个过程?这个算法充满了超时,所以任何建议都会非常感激!

更新: 在尝试了所有可能的关于 RMI 超时的 VM 属性后,例如: -Dsun.rmi.transport.tcp.responseTimeout=1 -Dsun.rmi.transport.proxy.connectTimeout=1 -Dsun.rmi.transport.tcp.handshakeTimeout=1 我根本没有看到任何区别,即使在每次 RMI 操作时都应该抛出异常(因为每个超时都设置为 1 毫秒!)。

我发现这个问题的唯一解决方案是使用这个RMISocketFactory重新实现:

0 投票
1 回答
686 浏览

java - Java RMI 服务器在哪里监听?

我正在阅读一些与 Java RMI 相关的教程(其中之一在这里),我发现自己几乎不了解 RMI 服务器。

我启动了一个 Java Main 程序,然后创建了一个UnicastRemoteObject, 然后将对象绑定到 RMI 注册服务器中(按照教程进行操作)。之后,Java Main 程序在绑定后退出。

UnicastRemoteObjectis的父类RemoteServer,我假设我创建的每个远程对象(也是UnicastRemoteObject)都是一个 Java 进程(JVM),它监听一个匿名端口。

所以如果我有 10 个远程对象,那么我有 10 个端口被占用来服务客户端远程调用?这听起来不对,但我真的找不到实际建立的 RMI 服务器在哪里,以及它将占用多少端口用于远程客户端调用?

谁能详细解释一下这个东西是如何工作的?

0 投票
1 回答
271 浏览

rmi - 有没有办法将对象保留在 RMI 中,以便在重新启动时重新加载

有没有办法将对象保留在 RMIregistry 服务中,以便在重新启动时重新加载?在最新版本 1.7 Java rte。示例:corba 命名服务保留绑定服务信息并在重新启动时重新加载。

0 投票
2 回答
2931 浏览

java - 尝试连接到 RMI 注册表但得到 java.net.ConnectException: Connection denied: connect

我有两台电脑。其中一个正在运行一个 RMI 注册表——它是单独从这段代码创建的:

另一台计算机的服务器正试图在此注册表上注册一个对象,但是,它得到了一个异常。这是服务器的代码:

我不断收到错误:

我无法弄清楚为什么会这样。我想我已经尝试了一切

0 投票
1 回答
2521 浏览

java - RMI 客户端如何查看并获取在注册表中注册的所有动态远程对象?

我要求 RMI 客户端需要获取在远程 RMI 注册表中注册的所有远程对象。

第一个问题,我知道有一个 registry.list() 方法可以返回对象的所有名称。但是,我如何获得我想要的类型的对象(实现我想要的接口),假设还注册了其他类型的对象。我应该遍历名称并使用 try/catch 语句,尝试实例化每个远程对象吗?

第二个问题,如果注册了新对象,客户如何注意到?在我的要求中,服务器将动态注册新对象到注册表中,客户端需要更新并尽快访问新对象。我应该只使用一个线程定期列出所有名称以找出新对象吗?

请注意,远程对象将从不同节点导出,而不是从同一节点导出。我知道它们是否来自同一个节点,可能我可以使用从实例化远程对象之一调用的回调功能。

0 投票
1 回答
809 浏览

java - Java RMI 注册表找不到服务器对象

所以,问题是我有一些服务器代码允许客户端使用 rmiregistry 调用函数。应该注意的是,我在 OS X 终端上运行这些命令,并且有两个文件夹在其中工作:

RMI- 它将调用 rmiregistry 并且 Server- 其中包含我所有的服务器代码

所以,我打开一个终端并输入:

一切都好,我得到一个端口回来。然后我登录到包含我的服务器代码的服务器文件夹来运行我的calculatorserver程序。现在我被告知要指定代码库和安全策略:

但是,我不断收到同样的错误:

我知道我收到此错误的唯一原因是 rmiregistry 找不到服务器对象。

一些指导将不胜感激

0 投票
0 回答
490 浏览

jakarta-ee - rmiRegistry 的 Red5 BeanCreationException

我创建了一个 Red5 应用程序,如此处所述。在启动 red5 时,我收到以下异常:

red5-web.xml:

Red5 是来自https://github.com/Red5/red5-server/releases/tag/v1.0.6-RELEASE的全新安装,我选择了 red5-server-1.0.6-RELEASE-server.tar.gz 并安装它进入我的 Ubuntu 15.10 的 /opt/red5/server1.0.6。默认JDK是oracle 8

我希望有人能告诉我,我还没有做什么。

[编辑] red5 只有一个实例。没有运行防病毒软件。java -version' 输出:

0 投票
1 回答
237 浏览

java - 详细的 rmiregistry - 我如何跟踪 rmiregistry 状态?

这有可能以某种方式追踪我的 rmiregistry 的状态吗?至少有一些类似记录器的信息会很好:

0 投票
0 回答
805 浏览

java - log4j2 奇怪的滚动日志行为和 rmiregistry 输出“ERROR StatusLogger Log4j2 could not find a logging implementation...”

我刚开始使用 log4j2。我将它用于使用 RMI 的多个 JVM。我有两个问题。

  1. 我使用与应用程序相同的 CLASSPATH 启动 rmiregistry,因为它是自己的可执行文件。它启动时没有任何错误,但是一旦 RMI 客户端与其对话,rmiregistry 就会输出此错误:ERROR StatusLogger Log4j2 could not find a logging implementation。请将 log4j-core 添加到类路径中...但是 log4j-core jar 文件已经在 CLASSPATH 中,如果有问题,那么为什么应用程序也不输出此错误?

  2. 我正在使用带有 OnStartupTriggeringPolicy 和 SizeBasedTriggeringPolicy 的 RollingFile 附加程序。理论上在启动时我应该得到如下日志:

foo.log - 活动日志
foo.log.1 - 如果我在之前已经启动过
旧日志,则会滚动 foo.log.2 - 如果我已经多次启动过旧日志,则会滚动

但是当我第一次启动它时,它滚动了很多次,即使没有达到大小限制并且活动日志是应该滚动的。换句话说,我明白了:

foo.log
foo.log.1
foo.log.2
foo.log.3 - 活动日志
foo.log.4

配置文件(log4j2.xml)内容:

CLASSPATH 包含很多 jar,但与 lo4j2 相关的主要有:

0 投票
0 回答
87 浏览

java - 为安卓应用开发轻量级注册服务

我想为类似于 UDDI Concept 的 android 设备开发一个轻量级的注册服务。

UDDI 是重量级的,难以实现资源约束设备。

AIDL 是否支持发布、订阅和访问控制等 UDDI 功能,或者我是否需要使用任何其他方法为 Android 设备开发轻量级注册表。对该主题的解释或链接可能会有所帮助