Я запрограммировал RMI-пример, и теперь проблема с моей Программой заключается в том, что я пытаюсь завершить или закрыть Сервер, если Пользователь вводит "closeBookManager()"
.Рассмотрим следующий код:
if(in.equals("closeBookManager()")) {
service.closeBookManager();
break;
}
Этот фрагмент кода находится в цикле while, что всегда верно, пока пользователь не введет "closeBookManager()"
Теперь проблема в том, что пользователь вводитв этой упомянутой строке я хотел бы закрыть сервер.Я пробовал это с System.exit(0)
на стороне сервера
public void closeBookManager() throws RemoteException {
...
System.exit(0);
}
, но он выдает эту ошибку на стороне клиента:
Исключение в потоке "main" java.rmi.UnmarshalException: Ошибка при отмене сортировки возвращаемого заголовка;Вложенное исключение: java.io.EOFException на sun.rmi.transport.StreamRemoteCall.executeCall (StreamRemoteCall.java:229) на sun.rmi.server.UnicastRef.invoke (UnicastRef.java:162) на java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod (RemoteObjectInvocationHandler.java:227) по адресу java.rmi.server.RemoteObjectInvocationHandler.invoke (RemoteObjectInvocationHandler.java:179) в клиентском прокси-сервере com.sun.an.jpg.: 66) Вызвано: java.io.EOFException в java.io.DataInputStream.readByte (DataInputStream.java:267) в sun.rmi.transport.StreamRemoteCall.executeCall (StreamRemoteCall.java:215) ... еще 5
Я также пытался отсоединить и удалить объект, но он не будет работать.
Пожалуйста, скажите мне, что я делаю неправильно или что я мог сделать.Буду признателен за любую помощь:)