Как я могу отладить проблемы загрузчика классов OSGI в Equinox? - PullRequest
3 голосов
/ 01 декабря 2011

Я пытаюсь создать пакеты OSGI для RestEasy 2.2.1.GA. Однако мой тестовый клиентский пакет для пакетов RestEasy завершается неудачно, когда он пытается удалить определенный тип.

Эта проблема специфична для контейнера Equinox, но я застрял, пытаясь выяснить, что пошло не так. Я не могу сузить проблему до фактического типа, который вызывает проблему. Возможно, поле проблемного класса с другим типом или другим типом в цепочке наследования недоступно, но какой?

Есть ли способ получить больше информации о проблеме? Класс не найденное исключение не помогает мне в этом пункте. Как я могу обнаружить корень проблемы? Во время компиляции Eclipse не жалуется на обнаружение проблемного типа, и все развернутые плагины сообщаются как «разрешенные» в консоли равноденствия.

1 Ответ

3 голосов
/ 01 декабря 2011

Вы должны иметь представление о том, что происходит:

  1. Проверьте, где происходит ClassNotFoundException. Это указывает (в большинстве случаев), какой пакет не может загрузить класс. Помните о некоторых пакетах, являющихся расширителями, которые пытаются загружать классы от имени других пакетов.

  2. Найдите, где находится класс, используя Консоль Equinox

  3. К настоящему времени у вас должно быть довольно хорошее понимание того, как все должно работать. Теперь вам нужно выяснить, почему они не работают. К сожалению, я не смог найти хороший инструмент отладки для проверки работы распознавателя. Вы можете попытаться вывести вашу проблему (если она есть в распознавателе), используя расширенную отладочную информацию, записываемую org.eclipse.osgi, когда она включена.

    Какие параметры отладки org.eclipse.osgi доступны? (может быть не актуально)

    Как их включить

...