我是RMI的新手所以请原谅我,如果我的问题很愚蠢。 我试图以并发方式导出数据。如何重复使用同一端口一次导出多个远程对象。 任何人都可以通过一个例子指导我实现这个目标吗
我尝试这样做,因此第一个对象被导出但在第二次导出时出现以下异常。
java.rmi.server.ExportException: Port already in use: 55580; nested exception is:
java.net.BindException: Address already in use: JVM_Bind
我使用了以下代码段
UnicastRemoteObject.exportObject(remoteObj, 55580);
如果我跳过端口号,RMI将选择任何端口号。如下所示
UnicastRemoteObject.exportObject(remoteObj)
在我的情况下,我的应用程序的端口号是固定的。
答案 0 :(得分:0)
如何重复使用同一端口一次导出多个远程对象
默认情况下会发生这种情况。从同一个JVM导出的所有远程对象
equals()
将在同一端口上导出。
我得出结论,您必须从两个JVM导出远程对象。这并不是真的需要这样做。把它们全部合二为一。如果从那里启动注册表,使用LocateRegistry.createRegistry()
,您可以使用注册表端口1099进行所有操作,并且它已经在IANA保留,因此没有关于该数字的参数。