具有两个接口时指定RMI端点地址

时间:2013-08-24 10:11:42

标签: java rmi

我在一个带有两个公共接口的盒子上有一个rmi服务器。当客户端连接时,它总是在UnicastServerRef2 [liveRef: [endpoint:[192.x.x.x:xxxx中返回错误的IP地址....来自客户端的连接转到另一个带有10.x.x.x的接口。有人知道如何解决这个问题吗?绑定存根时我不想指定ip。它适用,但我希望它能听所有接口(0.0.0.0)。

如果我指定java.rmi.server.hostname=myhostname并使用RMIServerSocketFactory创建ServerSocket[addr=myhostname/10.x.x.x,localport=xxxx],它仍会将192.x.x.x地址作为远程端点返回给客户端。奇怪的是,我在不同的端口上有两个UnicastRemoteObjects个对象,其中一个返回正确的地址,另一个没有。

任何想法如何使用连接的接口的ip返回端点?

1 个答案:

答案 0 :(得分:3)

这就是java.rmi.server.hostname属性的用途。将它在导出JVM中设置为您希望客户端用于连接它的任何IP地址。