Установка функции Karaf выдает неподдерживаемое значение «Bundle-ManifestVersion»: 1

Привет, ребята, я получаю следующую ошибку при использовании feture install в karaf

org.apache.karaf.features.internal.util.MultiException: Error
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader.<init>(MavenDownloadManager.java:84)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager.createDownloader(MavenDownloadManager.java:72)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:358)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem.downloadBundles(Subsystem.java:355)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:191)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:263)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1079)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:975)[9:org.apache.karaf.features.core:4.0.3]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79]
    at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
Caused by: java.lang.Exception: Unable to create resource for bundle mvn:org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT
    at org.apache.karaf.features.internal.region.Subsystem.createResource(Subsystem.java:567)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem$1.downloaded(Subsystem.java:376)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:133)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.MavenDownloadManager$MavenDownloader$1.operationComplete(MavenDownloadManager.java:127)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.notifyListener(DefaultFuture.java:344)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.notifyListeners(DefaultFuture.java:329)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.DefaultFuture.setValue(DefaultFuture.java:255)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.AbstractDownloadTask.setFile(AbstractDownloadTask.java:61)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.download.impl.AbstractRetryableDownloadTask.run(AbstractRetryableDownloadTask.java:59)[9:org.apache.karaf.features.core:4.0.3]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_79]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)[:1.7.0_79]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)[:1.7.0_79]
    ... 3 more
Caused by: org.osgi.framework.BundleException: Unable to build resource for mvn:org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT: Unsupported 'Bundle-ManifestVersion' value: 1
    at org.apache.karaf.features.internal.resolver.ResourceBuilder.build(ResourceBuilder.java:80)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.resolver.ResourceBuilder.build(ResourceBuilder.java:69)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.region.Subsystem.createResource(Subsystem.java:565)[9:org.apache.karaf.features.core:4.0.3]
    ... 15 more
Caused by: org.osgi.framework.BundleException: Unsupported 'Bundle-ManifestVersion' value: 1
    at org.apache.karaf.features.internal.resolver.ResourceBuilder.doBuild(ResourceBuilder.java:88)[9:org.apache.karaf.features.core:4.0.3]
    at org.apache.karaf.features.internal.resolver.ResourceBuilder.build(ResourceBuilder.java:78)[9:org.apache.karaf.features.core:4.0.3]
    ... 17 more

feature.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.3.0" name="Diff-Blueprint">
    <feature name="Diff-Blueprint" description="Diff-Blueprint" version="0.0.1.SNAPSHOT">
        <feature prerequisite="true" dependency="false">wrap</feature>
        <bundle>mvn:org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT</bundle>
        <bundle>wrap:mvn:osgi/osgi/3.0.1</bundle>
        <bundle>wrap:mvn:javax.xml/xml/3.1.0</bundle>
        <bundle>wrap:mvn:xmlunit/xmlunit/1.6</bundle>
        <bundle>wrap:mvn:junit/junit/4.11</bundle>
        <bundle>wrap:mvn:org.hamcrest/hamcrest-core/1.3</bundle>
        <bundle>mvn:com.googlecode.json-simple/json-simple/1.1.1</bundle>
        <bundle>wrap:mvn:de.odysseus.staxon/staxon-jackson/1.2</bundle>
        <bundle>mvn:com.fasterxml.jackson.core/jackson-core/2.0.6</bundle>
        <bundle>wrap:mvn:de.odysseus.staxon/staxon/1.2</bundle>
        <bundle>mvn:log4j/log4j/1.2.17</bundle>
        <bundle>mvn:org.codehaus.jackson/jackson-mapper-asl/1.9.13</bundle>
        <bundle>mvn:org.codehaus.jackson/jackson-core-asl/1.9.13</bundle>
        <bundle>wrap:mvn:org.unitils/unitils/2.4</bundle>
        <bundle>wrap:mvn:commons-logging/commons-logging/1.1</bundle>
        <bundle>wrap:mvn:commons-dbcp/commons-dbcp/1.2.2</bundle>
        <bundle>wrap:mvn:commons-pool/commons-pool/1.3</bundle>
        <bundle>wrap:mvn:commons-lang/commons-lang/2.3</bundle>
        <bundle>wrap:mvn:commons-collections/commons-collections/3.2</bundle>
        <bundle>wrap:mvn:ognl/ognl/2.6.9</bundle>
        <bundle>wrap:mvn:ant/ant/1.6.5</bundle>
    </feature>
</features>

person Charity    schedule 05.02.2016    source источник
comment
Похоже, проблема связана с вашим собственным артефактом org.dt.dummy/Diff-Blueprint/0.0.1-SNAPSHOT. Как вы его создаете и как выглядит его манифест?   -  person Christian Schneider    schedule 05.02.2016


Ответы (4)


Ценю, что я воскрешаю здесь старую ветку, но чтобы уточнить ответ @Charity, для всех, кто обнаружит это позже (как я)...

Проблема в том, что мы пытаемся развернуть в контейнере пакет, не совместимый с OSGi. Решение состоит в том, чтобы «обернуть» пакет, который вызывает у вас проблемы, с помощью протокола Wrap, описанного в OPS4J Wiki.

Пример JAR

Простой пример с использованием Maven показан ниже:

wrap:mvn:commons-logging/commons-logging/1.1

Обратите внимание, что мы должны добавить к пакету префикс «wrap:», и это все. См. вики для более сложных примеров, которые переопределяют настройки, определенные в манифесте.

Пример ВОЙНЫ

Разверните WAR-файл, не совместимый с OSGi, практически таким же образом, используя вместо этого обработчик URI «webbundle»:

webbundle:mvn:com.example/example-web-app/1.0/war
person Daniel Scarfe    schedule 23.07.2019

Я нашел решение, если мы обернем банки, которые выдают Bundle-ManifestVersion: 1, тогда это сработает

person Charity    schedule 11.02.2016
comment
Мне это совсем не помогает. Я понятия не имею, что имелось в виду - person zeropublix; 01.10.2018

Очевидно, что пакет Diff-Blueprint имеет Bundle-ManifestVersion: 1 в качестве заголовка MANIFEST.MF. Это указывает на то, что он предшествует OSGi Release 4.0, выпущенному в 2005 году, поэтому неудивительно, что современная версия Karaf его не поддерживает.

Так что вам придется изучить инструмент, который создал этот пакет.

person Neil Bartlett    schedule 05.02.2016
comment
Я могу развернуть то же самое без использования feature.xml. Способ развертывания: я скопировал все зависимости и jar-файл пакета приложений в папку развертывания karaf и перезапустил экземпляр. - person Charity; 05.02.2016
comment
Возможно, функция указывает на другую версию. В любом случае, это всего лишь догадки, если вы не публикуете соответствующую информацию, такую ​​​​как манифест пакета. - person Neil Bartlett; 05.02.2016
comment
Я проверил feature.xml, там не упоминается Bundleversion. Возможна ли эта ошибка, если одна из зависимых банок имеет другую версию BundleVersion? - person Charity; 06.02.2016
comment
Нет. Bundle-Version не то же самое, что Bundle-ManifestVersion. - person Neil Bartlett; 07.02.2016

Попробуйте отредактировать файл MANIFEST.MF проблемного пакета, просто измените
Bundle-ManifestVersion со значением 2 вместо 1.

person vetalok    schedule 09.02.2016
comment
Я не могу этого сделать, потому что это сторонние банки, которые не подходят для карафа. Единственное решение - завернуть банки. Обтекание — это функция, предоставляемая karaf. - person Charity; 23.02.2016
comment
Установка Bundle-ManifestVersion в 2 не делает JAR пакетом OSGi - person Grzegorz Grzybek; 29.09.2017