Приложению Eclipse e4 RCP не удается запустить с ошибкой «Невозможно получить пакет из URI» - PullRequest
0 голосов
/ 05 мая 2018

При попытке запустить разрабатываемое мной приложение RCP Eclipse e4 отображается следующее сообщение об ошибке ...

!ENTRY org.eclipse.e4.ui.workbench 4 0 2018-05-05 14:01:24.060
!MESSAGE Unable to retrieve the bundle from the URI: bundleclass://com.mycompany.myapp/com.mycompany.myapp.demo.DemoPart

Я думаю, что проблема может быть вызвана плагином, который не определен в файле feature.xml, однако я не могу понять, какой плагин отсутствует. Используя функцию «Показать иерархию зависимостей плагина» в разделе «Анализ зависимостей» файла MANIFEST.MF плагина, я включил все зависимости плагина в файл feature.xml.

Продукт основан на функциях и состоит из плагинов, которые я разработал, и сторонних зависимостей, извлеченных из Eclipse Orbit. Приложение в настоящее время запускается с использованием файла продукта в Eclipse.

Мои вопросы ...

  1. Можно ли получить более подробное сообщение об ошибке из приложения Eclipse RCP, в котором будет указана причина проблемы?
  2. Есть ли какие-либо другие способы устранения неполадок, которые я могу предпринять, чтобы выяснить причину проблемы?
  3. Если предположить, что проблема вызвана отсутствующим плагином, можно ли определить, какой плагин на самом деле отсутствует?

1 Ответ

0 голосов
/ 07 мая 2018

Решение состоит в том, чтобы использовать консоль OSGI, чтобы определить, почему пакет не может быть загружен. Это требует ряда шагов:

  1. Добавить аргумент -console 5555 к аргументам запуска файла продукта
  2. Подключитесь к консоли, используя telnet через порт 5555 или представление консоли в Eclipse IDE
  3. Найдите идентификатор пакета, используя команду ss <xxx>, где <xxxx> - это имя пакета, который не будет загружен, или просто используйте команду ss и найдите пакет в списке
  4. Запустите команду diag <bundle-id>, где <bundle-id> - это идентификатор, полученный на предыдущем шаге. Это должно указывать, почему пакет не прошел
  5. Если проблема связана с отсутствующей зависимостью, найдите одну или несколько записей с текстом Unresolved requirement и отсутствующие плагины для feature.xml файла

Возможно, потребуется повторить шаги 2–5 несколько раз, чтобы найти все отсутствующие зависимости.

...