#java #rmi
#java #rmi
Вопрос:
Я пытаюсь разработать простую серверную / клиентскую программу, использующую java rmi. кажется, пока все работает нормально, но единственная проблема заключается в том, что когда клиент завершает работу и пытается повторно подключиться, я получаю следующее исключение:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.ConnectException: Connection refused to host: 192.168.x.y; nested exception is:
java.net.ConnectException: Connection refused: connect
почему сервер отказал в подключении во второй раз?
вот мой код
сервер:
public static void main(String[] args) {
try {
Naming.rebind("ChatServer", new ChatServerImpl());
Naming.rebind("NotificationSource", nsource);
System.out.println("Chat Server is up and runnning!");
} catch (Exception e) {
System.err.println("Problem!!!!");
e.printStackTrace();
}
}
«Сервер чата» и «nsource» (который является статическим nsource) являются объектами UnicastRemoteObject, которые расширяют «Удаленные» интерфейсы. («ChatServer» и «NotificationInterface»).
клиент
public static void main(String[] args) {
String url_ChatServer = "rmi://localhost/ChatServer";
String url_NotificationSource = "rmi://localhost/NotificationSource";
try {
ChatServer cs = (ChatServer) Naming.lookup(url_ChatServer);
NotificationSourceInterface ns = (NotificationSourceInterface) Naming.lookup(url_NotificationSource);
new Thread(new ChatClientImpl(cs,ns)).start();
} catch (Exception e) {
System.err.println("Problem ~Client");
e.printStackTrace();
}
}
я не использую rmic, поскольку он больше не требуется (начиная с java 1.5)
спасибо
Ответ №1:
Если вы получаете это при поиске, значит, реестр не работает. Если вы получаете его, вызывая удаленный метод, его JVM завершила работу.