当我打包我的RMI应用程序并转移到Linux系统并运行它。
日志显示RMI服务正在服务器127.0.0.1上运行(由InetAddress.getLocalhost()).
的方法打印
主机文件中的配置是“127.0.0.1 localhost.localdomain localhost”,所以我认为RMI服务器默认将Localhost作为服务器IP。
之后,我的RMI客户端尝试使用其真实IP(172.16.7.155)调用RMI服务器方法,这导致异常“拒绝连接127.0.0.1”。
有两种方法可以解决这个问题。一个是修改主机文件并将localhost反映到真实IP(172.16.7.155),但我无法修改它,因为其他应用程序正在使用localhost域。
另一种方法是重置在RMI服务器上映射IP地址的方法,即代替InetAddress.getLocalhost()
,是否有此方法的配置?
答案 0 :(得分:0)
您可以通过使用系统属性“-Djava.rmi.server.hostname = 172.16.7.155”启动Java rmi服务器进程来解决此问题(或者无论该框的公共IP是什么)。 (详情here)