Итак, я использую RMI в приложении Eclipse RCP.Загрузчик классов RMI и OSGI так сильно ненавидят друг друга, но я мог решить свою первую проблему здесь .
Мое серверное приложение состоит из пакета Сервер , который зависит от Core .Кроме того, пакет Карта загружается с использованием точки расширения ядра ( DataUpdate ).
Аналогично Клиент запускается в зависимости от Core и загрузка Map в качестве плагина.
Теперь отправка User с клиента на Server больше не представляет проблемы(решенная проблема выше).К сожалению, обратное не работает. Клиент сохраняется как Обратный вызов на Сервер и должен получать DataUpdate объекты.Они создаются в пакете Map на сервере и отправляются через RMI.Когда я получаю их на стороне клиента, я получаю зловещее исключение ClassNotFound.Я делаю так же, как на сервере:
Thread.currentThread().setContextClassLoader(
this.getClass().getClassLoader());
Но это не помогает.Кроме того, чтобы запустить и сервер, и клиент, мои параметры запуска:
-consoleLog -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:${workspace_loc}
А в клиенте я настроил менеджер безопасности на персональную реализацию, которая позволяет все.
Так что у кого-нибудь есть идеяпочему класс не найден?