我有一个使用 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);
最佳答案
NoSuchObjectException 意味着 stub 引用了一个尚未显式或通过 GC 未导出的远程对象。您是否在lookup()、registerClient()或removeClient()上得到了这个?
关于Java RMI NoSuchObjectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986272/