2012-02-23 2 views
2

Im в настоящее время развиваются пучки для karaf и есть несколько вопросов ...Karaf развитие

Я написал пучок/WebService на основе 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), так где же проблема? какая зависимость отсутствует? как я могу решить такие проблемы?

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

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

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

Вызванные: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet

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

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

Спасибо! Chris

+0

всегда стоит добавить более широкий тег, чтобы привлечь больше потенциальных ответов. Я добавил тег OSGi, поскольку некоторые из ваших запросов не являются специфическими для Karaf – earcam

ответ

7

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

Прокрутка вниз к буровому со ссылкой на «верблюжьего CXF» и запустить две команды функции: addurl и возможности: установить. У меня такое чувство, что это решит все ваши проблемы.


весна-АОП

На Karaf консольного типа:

exports | grep org.aopalliance.aop 

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

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

Так в то время как весной-АОП у пакета есть правильные пакеты, они неправильная версия, запрашиваемый диапазон is> = 1.0.0 и < 2.0.0, поэтому 3.1.0 этого не удовлетворяет.


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

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

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

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

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

Здесь вы можете найти множество зависимых от OSGi maven зависимостей http://ebr.springsource.com/repository/app/ - У меня был быстрый взгляд, но ваша весенняя зависимость от aop очень старая, какая версия 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. Всегда остерегайтесь, что информация может быть устаревшей

-1

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