Apache Karaf и пакеты Apache Commons - PullRequest
3 голосов
/ 29 марта 2012

Правильно, поэтому некоторые действительно нуб (это мое первое развертывание пакета для Karaf) задают вопросы для людей Apache Karaf. Я развертываю пакет, который использует много пакетов org.apache.commons. *. Когда я развернул свой пакет и затем попытался запустить его, Караф выдал ошибку о том, что, например, я не нашел org.apache.commons.pools. Я немного погуглил и запустил следующее:

osgi:install mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-pool

Это установило недостающую связку, и я нажал следующую. Хотя я понимаю, что необходимые пакеты не установлены в контейнере OSGI, у меня есть некоторые вопросы, требующие разъяснения.

  • Насколько я понимаю, пакет, который я устанавливаю, использует какой-то пакет servicemix. Итак, я хочу знать, нужно ли это, не могу ли я просто добавить пакет org.apache.commons.pool вместо полного пакета servicemix?
  • Когда мне не хватает связки, как я могу узнать, какой maven URL использовать. Например, скажите, что мне нужен пакет foobar. Как мне добавить пакет, если я не знаю URL? Сейчас я не могу запустить свой пакет из-за того, что package = org.apache.log не найден. Так как я узнаю, как добавить это?
  • Разница между комплектом и функцией?

Надеюсь, вопросы достаточно ясны. Я продвигаюсь с Карафом, просто нужно прояснить эти моменты.

1 Ответ

11 голосов
/ 01 апреля 2012

Не все Java-jar-файлы совместимы с OSGi, они должны иметь манифест OSGi .

Я выполняю следующие шаги, когда мне нужно добавить зависимость из консоли:

  • Поиск в библиотеке mvnrepository.com
  • Попробуйте установить его так:

    установить mvn: [идентификатор группы] / [идентификатор артефакта] / [версия]

  • Если это не OSGiбиблиотека, то я ищу его в SpringSource .В этом репозитории все пакеты являются OSGi, но обычно они имеют устаревшие версии.

  • Мой последний вариант - использовать средство развертывания Karaf Wrap, которое позволяет развертывать пакеты не OSGi.Ознакомьтесь с руководством пользователя .

А насчет функций, функция - это просто набор пакетов.Прочитайте этот пост для получения более подробной информации.

...