情况:一台服务器机器安装了一些应用程序服务器(JBoss)。 JVM对整个机器来说都是独一无二的,它被每个服务器使用。
每个服务器都有自己的RMI存根,它在服务器启动时在RMI注册表中注册。但是,为了正确处理RMI,需要定义Java属性java.rmi.server.codebase
= jar文件的路径,其中包含用于存根的类。这是主要问题:当许多服务器使用一个JVM时,但定义的路径只是一个应用程序服务器目录。因此,RMI客户端无法连接到不同的服务器并调用不同版本的远程接口。
我认为有以下几种方式:
还有其他变种吗?也许有人已经遇到过这样的问题?
答案 0 :(得分:0)
(1)是您唯一的选择。它是用LocateRegistry.createRegistry()
完成的,除非JBoss有办法永久配置它。您必须为每个注册表使用单独的端口。
(2)对我没有进一步解释甚至没有意义,除非它真的是(1)的延续。