如果我从命令行创建RMI注册表,则客户端将对象绑定到注册表没有问题。
但是,如果我使用ProcessBuilder
启动RMI注册表,它会出错。
这是我使用ProcessBuilder
创建rmiregistry
的代码
ProcessBuilder obj = new ProcessBuilder ("rmiregistry","2500");
Process obj_process = obj.start();
当我尝试绑定到我自己的RMI注册表时,我因使用ProcessBuilder
而遇到的错误
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: node_func
node_func
是一个接口
有什么想法吗?
出现异常是因为rmiregistry应用程序不知道从哪里加载类。当您试图在RMI注册表中绑定一个对象时,注册表会下载该对象的类定义。
处理此问题的正确方法是设置 java.rmi.server.codebase 属性
(右键单击您的项目-
该属性要求目录路径以正斜杠终止,如下所示:
-Djava.rmi.server.codebase=file:${workspace_location}/folder/
如果 ${workspace_location} 变量是相对路径,并且 rmiregistry 应用程序未在同一目录中启动,因此相对路径不正确,则也可能遇到问题。如果使路径成为绝对路径,或者在相应的目录中启动 rmiregistry,则 ClassNotFoundException 应该会消失。有关更详细的信息,请参阅有关 java.rmi.server.codebase 属性的教程。
希望有帮助。
归功于这个家伙
我不明白为什么在可以使用LocateRegistry.createRegistry()时要启动一个单独的进程。如果你这样做了,这个问题也会消失。
问题内容: 我一直在将RMI用于当前正在处理的项目,并且希望将多个主机绑定到单个RMI注册表。 但是,当我尝试这样做时,我收到一条错误消息: java.rmi.AccessException:不允许Registry.Registry.bind;origin / 192.168.0.9是非本地主机 我这样做是在谷歌上进行的,似乎RMI默认情况下会阻止远程主机进行绑定,我想知道是否有某种方法可以覆盖或
我写了一个简单的RMI应用程序。我发现客户端在获得RMI-Registry后可以成功执行Registry.unbind()方法。在我看来,这是一种安全风险。为什么允许客户端在远程注册表中取消绑定名称?一个邪恶的人可以通过修改代码来做到这一点,而我的所有其他客户端都无法连接到我的服务器,因为绑定已被删除。 是否有可能在Java策略中否认这一点?
我有一个工作中的Eureka注册表,其中注册了许多Spring-Boot应用程序。我知道这是有效的,因为他们能够找到对方,并通过尤里卡注册中心进行交流。 当我启动我的新SBA应用程序时,我可以看到它自己在Eureka注册表中注册,所以它正在查找Eureka。然而,当我打开SBA UI时,它是空的,只是说“没有应用程序注册。”在我的控制台上,我可以一遍又一遍地看到下面的堆栈跟踪。
Spring启动管理版本:2.0.4 我试图支持LDAP安全性来登录到Spring Boot Admin,但也支持注册到SPA服务器的客户端的基本身份验证。在LDAP完全关闭的情况下,我无法让客户端向服务器注册。 我犯的错误 将应用程序注册为Application失败(name=spall-boot-Application, Management ementUrl=... 服务器applicati
我正在根据文件进行开发:https://codecentric.github.io/spring-boot-admin/2.0.2,但我没有在安全应用程序中注册客户端。 我的配置是: 应用yml 网络安全配置 错误正在发生: 有人能帮我做这件事吗? 更新日期2018-09-01: 我尝试了不同的配置,但出现了相同的错误: 客户端:
我正在尝试连接到MBean服务器。我需要编写JMX客户端应用程序。这是用于客户端应用程序的代码。但我有一个例外 检索RMIServer存根失败:javax.naming.ServiceUnavailableException[根异常为java.rmi.ConnectException:连接拒绝主机:localhost;嵌套异常为: 谁能帮我把这个修好。 我使用以下参数运行了这段代码。 dcom.s