2011-01-30 2 views
0

BundlesRMI обратных вызовов в Eclipse RCP

Поэтому я использую RMI в приложении Eclipse RCP. Классный загрузчик RMI и OSGI так много ненавидят друг друга, но я могу решить свою первую проблему here.

Мой сервер приложений состоит из сервера пучка, который зависит от Ядра. Дополнительно загружается комплект . Карта загружается с использованием точки расширения сердечника (DataUpdate).

Аналогичным образом Клиента запускается в зависимости от ядра и загрузка Карты в качестве подключаемого модуля.

Теперь послав пользователя от клиента к серверу не создает никаких проблем больше (решается вопрос выше). К сожалению, обратное не работает. Клиент Клиент хранится как обратный вызов на сервере и должен получать DataUpdate объектов. Они создаются на карте на сервере и отправляются через RMI. Когда я получаю их на стороне клиента, я получаю зловещее исключение ClassNotFound. Я делаю то же самое, что и на сервере:

Thread.currentThread().setContextClassLoader(
       this.getClass().getClassLoader()); 

Но это не поможет. Кроме того, чтобы начать как сервер и клиент мои параметры запуска являются:

-consoleLog -Djava.security.policy=java.policy -Djava.rmi.server.codebase=file:${workspace_loc} 

И в клиенте я установить менеджер безопасности для личной реализации, которая позволяет все.

У кого-нибудь есть идея, почему класс не найден?

ответ

0

Так циничный ответ на этот вопрос заключается не в использовании реализации Sun RMI.

Теперь я использую Kryonet, для которого я могу установить классы объектов, отправляемых по сети. Поскольку каждый из этих классов знает свой загрузчик классов, проблема решена.

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