Java RMI NoSuchObjectException - PullRequest
       12

Java RMI NoSuchObjectException

1 голос
/ 13 февраля 2011

У меня есть сервер и клиент, использующий 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 Ответ

1 голос
/ 14 февраля 2011

NoSuchObjectException означает, что заглушка ссылается на удаленный объект, который не был экспортирован либо явно, либо через GC.Вы получаете это на lookup (), или registerClient (), или removeClient ()?

...