Исключение пакета OSGI, проблема зависимости maven

Я довольно новичок в OSGI, Felix и Maven, только начал с этого. Я развертываю java-сборку через jenkins, и у меня возникает проблема с зависимостями ниже.

Ниже представлено содержимое файла pom, которое включает в себя зависимость, я не уверен, правильно ли это, но он все еще жалуется на это.

Он ищет «javax.jws», а версия от 2.0 до 3.0

javax.jws;version>="2.0.0",!javax.jws;version>="3.0.0"

Ниже приведено содержание pom.

                            !sun.misc,!org.apache.avalon.framework.logger,
    !org.ietf.jgss,!org.apache.log,!org.apache.log.format,!org.apache.log.output.io,!com.werken.xpath,!org.apache.tools.ant,!org.apache.tools.ant.taskdefs,
    !org.jdom,!org.jdom.input,!org.jdom.output,com.mblox.ngp.sal*;
    version="${sal-utils-version}",org.apache.commons.logging;version="1.1",
    javax.jws;version>="2.0.0",!javax.jws;version>="3.0.0",
    com.sun.xml.ws.api.message,*

Ниже приведено исключение:

[#|2013-01-29 11:07:44,109|ERROR|NGP-SAL-SALBootstrap-SAL-0|com.mblox.ngp.sal.platform.impl.Sal|172.18.36.38|slodev-rhatf4.mblox.com|sal-1|Unresolved constraint in bundle sap-ws-netcom [24]: Un
able to resolve 24.0: missing requirement [24.0] package; (&(package=javax.jws)(version>=2.0.0)(version>=2.0.0)(!(version>=3.0.0))) - [24.0] package; (&(package=javax.jws)(version>=2.0.0)(versi
on>=2.0.0)(!(version>=3.0.0)))|#]
org.osgi.framework.BundleException: Unresolved constraint in bundle sap-ws-netcom [24]: Unable to resolve 24.0: missing requirement [24.0] package; (&(package=javax.jws)(version>=2.0.0)(version
>=2.0.0)(!(version>=3.0.0))) - [24.0] package; (&(package=javax.jws)(version>=2.0.0)(version>=2.0.0)(!(version>=3.0.0)))
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3421)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1754)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:905)
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:892)
        at com.mblox.ngp.sal.platform.impl.Sal.installBundle(Sal.java:608)
        at com.mblox.ngp.sal.platform.impl.Sal.getBundle(Sal.java:481)
        at com.mblox.ngp.sal.platform.impl.Sal.installSap(Sal.java:630)
        at com.mblox.ngp.sal.platform.impl.Sal.initSapBundles(Sal.java:545)
        at com.mblox.ngp.sal.platform.impl.Sal.start(Sal.java:290)
        at com.mblox.ngp.sal.platform.impl.SALBootstrap.call(SALBootstrap.java:64)
        at com.mblox.ngp.sal.platform.impl.SALBootstrap.call(SALBootstrap.java:24)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

Любые предложения или указатели для решения этой проблемы.

2
nl ja de

4 ответы

Есть ли пакет, который экспортирует пакет javax.jws ? Если нет, вы можете добавить эту зависимость Maven к своей сборке, а также убедиться, что она развернута в Felix:


    org.apache.geronimo.specs
    geronimo-ws-metadata_2.0_spec
    1.1.2

1
добавлено
Спасибо, что ответили на вопрос
добавлено автор likeToCode, источник

Все выглядит так, как ожидалось. Вы сконфигурировали pom-пакет sap-ws-netcom , чтобы объявить о необходимости пакета j avax.jws . И контейнер пытается найти его, пока он пытается разрешить зависимость.

org.osgi.framework.BundleException: Unresolved constraint in bundle sap-ws-netcom [24]: Unable to resolve 24.0: missing requirement [24.0] package; (&(package=javax.jws)(version>=2.0.0)(version
>=2.0.0)(!(version>=3.0.0))) - [24.0] package; (&(package=javax.jws)(version>=2.0.0)(version>=2.0.0)(!(version>=3.0.0)))
        at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3421)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:1754)

Проблема проста: в контейнере OSGi нет javax.jws , по крайней мере, не в версиях, о которых вы просите. Вы считали, что сделали это доступным?

Способ, которым вы можете сделать это, - установить пакет, который экспортирует этот пакет. Вы должны сделать это сами. Обычно это относится к OSGi; если вы явно не делаете пакет java доступным, то его там нет.

0
добавлено

У меня также была проблема с зависимостями javax.jws с использованием Felix внутри CQ5, и решение (как ни странно) заключается в том, чтобы явно не включать javax.jws и javax.jws.soap в части Import-Package манифеста пакета. Если вы используете плагин maven-bundle (как и я), вы можете использовать в инструкциях следующее:


org.apache.felix
maven-bundle-plugin
2.1.0
true


!javax.jws,!javax.jws.soap,* 



Мне также не нужно было иметь отдельный пакет, который экспортирует javax.jws и javax.jws.soap. Просто сделать выше для моего пакета, который имел клиентский код веб-сервиса (сгенерированный с помощью wsimport), было достаточно, чтобы заставить его работать.

Еще одна вещь, которую я должен был сделать, это добавить

sling.bootdelegation.com.sun=com.sun.*

в файл sling.properties.

The CQ5 tutorial on creating webservices mentions it on this page: http://helpx.adobe.com/adobe-cq/using/creating-cq-bundles-consume-web.html

<Р> "Примечание:

     

Этот рабочий процесс работает на Adobe CQ; однако вы можете столкнуться с   следующее исключение:

     

Вызвано: java.lang.ClassNotFoundException:   com.sun.xml.internal.ws.spi.ProviderImpl at   org.apache.sling.commons.classloader.impl.ClassLoaderFacade.loadClass (ClassLoaderFacade.java:127)   в java.lang.ClassLoader.loadClass (Неизвестный источник) в   javax.xml.ws.spi.FactoryFinder.safeLoadClass (Неизвестный источник) ... 107   Больше   Решение. Чтобы устранить эту проблему и убедиться, что вы можете создать   пакет, который потребляет веб-службы, как описано в этой статье, изменить   файл sling.properties, расположенный в папке crx-quickstart \ conf.   Добавьте следующую строку кода в этот файл:   sling.bootdelegation.com.sun = com.sun. *. Затем перезапустите сервер. однажды   вы выполняете эту задачу, вы можете следовать этой статье ».

0
добавлено

Если вы используете Windows, попробуйте поместить его в C: \ G \ или более короткое имя пути. это исправило проблему для меня!

0
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async