2011-02-08 2 views
0

У меня есть folloving RMI сервер:RMI не может найти связанный объект?

public static void main(String[] args) { 
    try{ 
     ChatSystemImpl chatSystem = new ChatSystemImpl(); 
     ChatSystem chatSystem_stub = (ChatSystem) UnicastRemoteObject.exportObject(chatSystem, 6001); 

     Registry registry = LocateRegistry.getRegistry("localhost", 6001); 
     registry.bind("ChatSystem1", chatSystem_stub); 

     System.out.println("Server up."); 
    } 
    catch(Exception ex){ 
     ex.printStackTrace(); 
    } 
} 

Когда я запускаю его я получаю:

ava.rmi.NoSuchObjectException: no such object in table 
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377) 
    at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source) 
    at fr.inp.ensimag.examples.chatsystem.Main.main(Main.java:30) 

Ну, я понятия не имею, что случилось ... Глядя на него в течение более 2 часов прямо сейчас ,

Это интерфейс (при необходимости):

public interface ChatSystem extends Remote{ 
    void registerUser(UserInfo newUser) throws RemoteException; 
    void unregisterUser(UserInfo user) throws RemoteException; 
    boolean userExists(UserInfo user) throws RemoteException; 
    void send(MessageInfo message) throws RemoteException; 
} 

Реализация имеет следующий заголовок, тело просто содержит методы, которые на самом деле не реализованы, они просто Сбрось UnsupportedOperationException:

public class ChatSystemImpl implements ChatSystem 

Интерфейс ChatSystem находится в другом проекте, тогда остальная часть исходного кода, если это имеет значение.

спасибо.

ответ

0

Ваш реестр не был открыт. Обычно это означает, что вы запускаете его в JVM через LocateRegistry.createRegistry(), и вы позволили ему собраться с мусором. Результат этого метода должен храниться в статической переменной. Это также может означать, что вы никогда не запускали реестр в первую очередь.

Смежные вопросы