Пытаться понять ошибки разрешения OSGi - PullRequest
0 голосов
/ 07 июня 2018

Я довольно новичок в OSGi и столкнулся с очень простой ошибкой новичка.

Когда я добавил BundleActivator в свой Bundle, я получил следующую ошибку разрешения:

[INFO] Building jar: C:\projects\osgi.enroute-master\projects\testproject\app\target\app-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- bnd-indexer-maven-plugin:4.0.0:index (index) @ app ---
[INFO]
[INFO] --- bnd-indexer-maven-plugin:4.0.0:index (test-index) @ app ---
[INFO]
[INFO] --- bnd-export-maven-plugin:4.0.0:export (default) @ app ---
[ERROR] Resolution failed. Capabilities satisfying the following requirements could not be found:
    [<<INITIAL>>]
      ? osgi.identity: (osgi.identity=org.foo.examples.service.impl)
          ? [org.foo.examples.service.impl version=0.0.1.201806070724]
              ? osgi.wiring.package: (&(osgi.wiring.package=org.osgi.framework)(&(version>=1.9.0)(!(version>=2.0.0))))
                  ? [org.osgi.framework version=1.9.0.201802012106]
                      ? osgi.wiring.package: (&(osgi.wiring.package=org.osgi.dto)(&(version>=1.1.0)(!(version>=2.0.0))))
The following requirements are optional:
    [org.apache.felix.scr version=2.1.0]
      ? osgi.wiring.package: (&(osgi.wiring.package=org.osgi.service.cm)(&(version>=1.6.0)(!(version>=2.0.0))))
      ? osgi.wiring.package: (&(osgi.wiring.package=org.apache.felix.service.command)(&(version>=1.0.0)(!(version>=2.0.0))))
      ? osgi.wiring.package: (&(osgi.wiring.package=org.apache.felix.shell)(&(version>=1.0.0)(!(version>=1.1.0))))
      ? osgi.wiring.package: (&(osgi.wiring.package=org.osgi.service.log)(&(version>=1.3.0)(!(version>=2.0.0))))
      ? osgi.wiring.package: (&(osgi.wiring.package=org.osgi.service.metatype)(&(version>=1.2.0)(!(version>=2.0.0))))

Я использую пример OSGi enRoute на GitHub , который использует подключаемые модули maven и пользовательские архетипы для настройки проекта и различных типов пакетов.Он также использует Bndtools, который, насколько я понимаю, должен автоматически разрешать именно такие зависимости пакета.Я не могу исключить, что в основе зависимости OSGi лежит также зависимость Maven.

Есть ли документация о том, как анализировать и понимать ошибки этого типа?

Я знаю, что этот вопрос неопределенныйВ настоящее время мне не хватает понимания, чтобы даже точно сформулировать проблему:)

1 Ответ

0 голосов
/ 07 июня 2018

Для ошибок разрешения вы сначала смотрите на самое внутреннее разрешение, которое не удаетсяВ вашем случае это:

osgi.wiring.package: (&(osgi.wiring.package=org.osgi.dto)(&(version>=1.1.0)(!(version>=2.0.0))))

Это можно перевести, если вам не хватает пакета, который обеспечивает экспорт пакета "org.osgi.dto" с версией [1.1.0,2.0.0).Этот пакет предоставляется

https://mvnrepository.com/artifact/org.osgi/org.osgi.dto

Так что вы можете попробовать установить этот пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...