问题标签 [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 投票
4 回答
19443 浏览

java - 如何设置 rmiregistry 使用的类路径?

我正在尝试制作一个 Java RMI 客户端/服务器应用程序。我在启动我的应用程序的服务器端时遇到了问题,因为当我尝试启动应用程序的服务器端时,它在调用 Registry.bind() 方法期间一直遇到ClassNotFoundException 。

我从这里的简单教程开始:http: //docs.oracle.com/javase/1.5.0/docs/guide/rmi/hello/hello-world.html。遵循这些说明后,它最初抛出 ClassNotFoundException 抱怨找不到“example.hello.Hello”。我能够通过从教程中的destDir目录启动 rmiregistry 来解决这个问题,因为 rmiregistry 显然将其初始起始目录用作其类路径的一部分。

之后我开始使用我的另一个测试应用程序,直到我开始在我的服务器类中使用第三方 jar 文件之前我都很好。现在,如果我的服务器类引用任何 jar 文件中的任何内容,则 Registry.bind() 将引发 ClassNotFoundException,因为 rmiregistry 应用程序不知道这些 jar 文件。

据我所知, rmiregistry 不接受任何类型的类路径启动参数,所以我想知道如何告诉它我希望它承认什么类路径。根据此处的教程:http: //docs.oracle.com/javase/tutorial/rmi/running.html,“您必须确保运行 rmiregistry 的 shell 或窗口没有设置 CLASSPATH 环境变量,或者有一个 CLASSPATH 环境变量,其中不包括您希望下载到远程对象客户端的任何类的路径。” 这听起来与我需要的相反……还是我读错了?是否有人成功启动了使用第三方 jar(commons-io、commons-logging 和 rmiio,在我的情况下)的 RMI 客户端/服务器?

顺便说一句,这是在 Windows 上。


更新 我找到了解决方法。请看下面我的回答。

0 投票
1 回答
990 浏览

java - 启动 rmiregistry 不起作用

启动 rmiregistry 时遇到问题

当我在命令行中输入 start rmiregistry 时,它返回一个错误:


java.rmi.RemoteException:无法导出:类 gnu.java.rmi.dgc。DGCImpl at 0x00418dde (Unknown Source) at 0x004192d2 (Unknown Source) at 0x00443aa4 (Unknown Source) at 0x0046adc4 (Unknown Source) at 0x0040984d (Unknown Source) at 0x0040989a (Unknown Source) at 0x00409090 (Unknown Source) at 0x0040909a (Unknown Source) at 0x0040989a (Unknown Source) at 0x00409090 (Unknown Source) at 0x00404 0x00468d37 (Unknown Source) at 0x0040906c (Unknown Source) at 0x0040a972 (Unknown Source) at 0x0040ac05 (Unknown Source) at 0x00401a80 (Unknown Source) at 0x0040cb73 (Unknown Source) at 0x0040cbae (Unknown Source) at 0x004003 (d7601 at 0x004003) Unknown Source) at 0x00416afe (Unknown Source) at 0x0041f220 (Unknown Source) at 0x004033f7 (Unknown Source) at 0x004034c7 (Unknown Source) at 0x00401328 (Unknown Source) at 0x00401247 (Unknown Source) at 0x00401294 (Unknown Source) at 0x058d30 (Unknown Source) )在 0x770e15ff(未知来源) 在 0x770e15d2(未知来源)


我已经看到了一个可能的解决方案,您可以确保您的环境变量指向正确的 jdk/jre,但我已经做到了,它应该可以工作....但它没有。

我唯一能想到的另一件事是我在大学代理上。

很高兴听到你的回答,Ta

0 投票
2 回答
875 浏览

java - 如何拒绝客户端解绑RMI Registry?

我编写了一个简单的 RMI 应用程序。我发现客户端获取RMI-Registry后可以成功执行Registry.unbind()方法。在我看来,这是一个安全风险。为什么允许客户端取消绑定远程注册表中的名称?邪恶的人可以通过修改代码来做到这一点,而我的所有其他客户端都无法连接到我的服务器,因为绑定已被删除。

是否有可能否认这一点,也许在 Java 政策中?

0 投票
2 回答
18387 浏览

java - 如何通过java代码启动RMI Registry?

我为客户端和服务器编写了 java 程序。但是,要运行程序,我需要手动启动 rmi 注册表!如何通过java代码(通过服务器)启动RMI注册表?

0 投票
3 回答
417 浏览

java - 单一 RMI 服务的简单入口点?

我有几个导出 RMI 接口的服务。

他们过去通过创建自己的注册表(使用LocateRegistry.createRegistry)并将其绑定在那里来提供此功能。然而,当服务被转移到在同一个虚拟机(Tomcat)中作为单独的应用程序运行时,这变得不可能了,因为由于某种原因,那里只能存在一个注册表。

我通过为所有服务使用中央注册表来解决这个问题。即便如此,我对注册表的多对象注册表角色并不真正感兴趣,只是它的入口点设施。然而,中央注册中心引入了更多的复杂性(例如,它必须首先启动,它必须具有它注册的服务的接口)。

有没有办法恢复每个服务独立提供其 RMI 接口的入口点的情况,同时让它们在同一个 VM 中运行(这是托管细节,不是设计的一部分)?

0 投票
2 回答
1976 浏览

java - 使用 ProcessBuilder 时客户端无法连接 RMI 注册表

如果我从命令行创建 RMI 注册表,则客户端将对象绑定到注册表没有问题。

但是,如果我使用 启动 RMI 注册表ProcessBuilder,则会出错。

这是我创建rmiregistry使用的代码ProcessBuilder

ProcessBuilder当我尝试绑定到我自己的 RMI 注册表时使用的错误

node_func是一个接口

有任何想法吗?

0 投票
1 回答
425 浏览

java - 从客户端调用 RMIregistry 的问题

我第一次尝试使用 RMI 注册表进行远程调用。我已经编写了实现它的接口和类。当我试图调用它时,我面临着这个问题。我已经通过 give 在我的 Windows 机器上启动了 rmiregistry start rmiregistry,它打开了一个新窗口。

客户端prg看起来像:

我对需要赋予什么价值感到困惑host

我试过给:

(一) http://localhost (二)http://localhost:1099

它离开了java.net.UnknownHostException: http://localhost:1099

更新:

将主机更改为My_Sys_IP后,我输了java.net.UnknownHostException,但最终得到Client exception: java.rmi.NotBoundException: Details

0 投票
1 回答
431 浏览

java - 系统间连接异常

这个问题已被问过很多次,我遵循了解决方案,但没有奏效。

我正进入(状态

试图从我的系统远程登录到10.155.1.232 1099端口..我能够远程登录意味着没有端口问题

还尝试在8090我的 tomcat 端口上通过 telnet 反之亦然,再次正常工作

我的系统上没有防火墙。

我是否需要检查 rmi 注册表是否已经在运行10.155.1.232

如何从cmd检查rmiregistry是否在windows系统中工作?

所以请指导我可能是什么问题

StackTrace 如下:

0 投票
1 回答
607 浏览

java - 客户端、服务器和 rmi 不起作用

此代码不起作用。好吧,它有效,但客户端不打印。难道我做错了什么?我正在使用 W7 和 NetBeans。有没有办法查看 rmiregistry 是否正常?如果我删除这些捕获,我无法编译它。我很确定问题来自重新绑定和查找。

ServerNew.java:

ClientNew.java:

服务器的输出(ServerNew.java:38Naming.rebind):

0 投票
1 回答
5393 浏览

java - Java RMI - 检查注册表是否存在

我在使用 Java RMI 时遇到了一些麻烦。

我可以检查注册表是否存在吗?这行代码应该给我注册表。

但是,当我使用错误的 IP 地址或找不到注册表的 IP 地址调用它时,该方法就会卡住。

所以我的问题是,我可以在调用 getRegistry() 之前以某种方式检查某个 IP 地址是否有注册表吗?