1

我有一个使用 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);
4

1 回答 1

1

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

于 2011-02-14T00:50:18.977 回答