Java RMI NoSuchObjectException

时间:2011-02-13 19:16:22

标签: java rmi clients

我有一个使用Java RMI的服务器和客户端。如果我使用一个客户端,所以下面的代码都可以。但是如果我连接一个客户端然后连接另一个客户端,它会抛出已经处于使用状态的端口异常。没关系,所以我断开连接的客户端,然后尝试再次连接第二个客户端。它给了我这个:

java.rmi.NoSuchObjectException:表

中没有这样的对象

为什么会这样?

//CONNECT

Registry registry = LocateRegistry.getRegistry(
    Options.getRegistryIp(), Options.getRegistryPort());
server = (IServer) registry.lookup(Constants.MB_SERVER_NAME);

UnicastRemoteObject.exportObject(client, Options.getMyPort());
server.registerClient(client);

//DISCONNECT

server.removeClient(client, client.getUser());
UnicastRemoteObject.unexportObject(client, false);

1 个答案:

答案 0 :(得分:1)

NoSuchObjectException意味着存根引用已取消导出的远程对象,无论是显式还是通过GC。你是在lookup(),registerClient()还是removeClient()上得到这个?