我有一个在 mac 上运行的 RMI 服务器。一旦我更改了服务器 IP 并重新启动应用程序和客户端,客户端就会使用正确的绑定和查找地址继续连接到旧 IP 地址。我真的不知道出了什么问题,因为该程序正在另一个具有不同端口的 linux 服务器上运行。
远程对象客户端得到的是Proxy[MinervaInterface,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:[192.168.0.104:51815](remote),objID:[40d99efb:140ba232cec:-7fff, 6333954213550330995]]]]]
其中 192.168.0.104 是旧 IP,应该是 10.0.1.104
我检查了主机文件和我的代码,没有类似的东西192.168.0.*
请帮忙,谢谢。
更新
我已经确认这是服务器注册表问题。但是我已经重新启动了服务器。我不记得我对注册表还做了什么。有什么方法可以手动设置吗?
更新
我在那个服务器上运行这段代码InetAddress.getLocalHost().getHostAddress()
,它返回192.168.0.104
,可以解释这个地址来自哪里。但是现在服务器上没有这个地址
解决了
我发现java使用主机名来查找本地主机地址,该主机名不是并且由于某种原因localhost
没有被更新。OS X Server
我从 OS X Server 控制台更新了记录并解决了这个烦人的问题。
从来没想过