Караф развитие - PullRequest
       5

Караф развитие

2 голосов
/ 23 февраля 2012

В настоящее время я разрабатываю пакеты для karaf и у меня есть несколько вопросов ...

Я написал пакет / веб-сервис на основе cxf, я пытаюсь развернуть его в karaf, но он не смог запустить этот пакет, потому что он не могразрешить некоторые пакеты, например

org.osgi.framework.BundleException: неразрешенное ограничение в пакете org.springframework.aop [56]: невозможно разрешить 56.0: отсутствует пакет требования [56.0];(& (package = org.aopalliance.aop) (версия> = 1.0.0) (! (версия> = 2.0.0)))

поэтому здесь возникает вопрос, эта зависимость от пакета исходит от spring-aop (3.1.0.RELEASE), так в чем же проблема?какая зависимость отсутствует?как я могу решить такие проблемы?

В таком случае я не совсем понял процесс разработки.я должен развернуть все недостающие пакеты в развертывании?потому что я хотел бы, чтобы сторонние сторонники выделялись из моих разработанных связок.И какие пакеты мне нужно развернуть?Это метод проб и ошибок?Есть ли общий способ позволить maven делать вещи с зависимостями?

Я обнаружил папку «system» и прочитал в документах, что это репозиторий, похожий на maven, для функций?

У меня был для тестов karaf с некоторыми предварительно развернутыми пакетами, и я поместил в него свой пакет веб-сервиса, но опять-таки исключения ...

Причина: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

Какая зависимость отсутствует?

Я уже читал учебник о верблюде и карафе, но он не объяснял материал по развертыванию, поэтому кто-нибудь может предложить мне хороший учебник?

Спасибо!Chris

Ответы [ 2 ]

7 голосов
/ 02 марта 2012

Краткий ответ

Прокрутите вниз до бита со ссылкой на «camel-cxf» и запустите две команды: addurl и features: install. Я чувствую, что это решит все ваши проблемы.


весна-АОП

На консоли типа Караф:

exports | grep org.aopalliance.aop

Я думаю, вы увидите такие строки, как:

XX org.aopalliance.aop; version=3.1.0.RELEASE

Так что, хотя у пакета spring-aop есть нужные пакеты, они имеют неправильную версию, запрашиваемый диапазон составляет> = 1.0.0 и <2.0.0, поэтому 3.1.0 не удовлетворяет этому. </p>


Установка / Установка

Вы можете поместить пакеты в $ {karaf.home} / deploy или использовать консоль.

Вы можете установить пакеты maven из консоли Karaf с помощью:

install -s mvn:groupId/artifactId/version/packaging/classifier

Где начинается -s, комплектация и упаковка / классификатор необязательны.

Вы можете найти множество готовых зависимостей OSGi maven здесь http://ebr.springsource.com/repository/app/ - Я быстро взглянул, но ваша зависимость от Spring очень близка, какую версию CXF вы используете?

Узнайте больше о функциях Karaf - это в основном файлы XML, в которых перечислены наборы пакетов, которые можно установить. Очень полезно для развертывания большого количества пакетов, и их можно установить в репозиторий maven.

В Karaf доступны некоторые стандартные функции, попробуйте:

features:install war

Это даст вам пристенный веб-контейнер и может разрешить ваше ClassNotFoundException: javax.servlet.http.HttpServlet, если это правильная версия

В Camel также есть файл функций, который, вероятно, решит все ваши проблемы, попробуйте это:

features:addurl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features
features:install camel-cxf

Обучение

Доступно немало, некоторые по http://karaf.apache.org и http://fusesource.com, но также посмотрите руководство в формате PDF, которое входит в дистрибутив Karaf. Всегда помните, что информация может быть устаревшей

0 голосов
/ 01 января 2014

Пожалуйста, отправьте файл MANIFEST.MF.Я думаю, что вы не упомянули тег в зависимости от maven-bundle-plugin.

...