Невозможно разрешить 1.0: отсутствует требование [1.0] osgi.wiring.package; (&(osgi.wiring.package=

Я пытаюсь запустить один из своих пакетов, но как только я его запускаю, я получаю следующее исключение. Я не уверен, в чем проблема.

org.osgi.framework.BundleException: Unresolved constraint in bundle GoldeneyeModellingFramework [1]: Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=com.host.domain.sharedpersonalize.storageservice)(version>=1.0.0)(!(version>=2.0.0)))
    at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
    at com.host.personalize.bullseye.InitializeOSGiFramework.installAndStartBundle(InitializeOSGiFramework.java:217)
    at com.host.personalize.bullseye.InitializeOSGiFramework.getBundlesInformation(InitializeOSGiFramework.java:167)
    at com.host.personalize.bullseye.InitializeOSGiFramework$1.run(InitializeOSGiFramework.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:328)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:161)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:109)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:192)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:216)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:736)

Позвольте мне рассказать вам, как я это делаю: я запустил фреймворк OSGi, следуя этому tutorial, и он работает нормально, но как только я запускаю пакет, GoldeneyeModellingFramework-

    for (Bundle bundle : installedBundles) {
        bundle.start();
    }

И я использую приведенную ниже зависимость в своем основном проекте, который запускает фреймворк/контейнер OSGi:

<dependency>
    <groupId>org.apache.felix</groupId>
    <artifactId>org.apache.felix.framework</artifactId>
    <version>4.2.1</version>
</dependency>
<dependency>
    <groupId>org.ops4j.pax.url</groupId>
    <artifactId>pax-url-mvn</artifactId>
    <version>1.3.6</version>
</dependency>

Это всегда дает мне вышеуказанное исключение. Пакет GoldeneyeModellingFramework зависит от проекта maven GoldeneyeStorageService, который включает этот пакет com.host.domain.sharedpersonalize.storageservice.

Ниже приведен файл Manifest.MF для пакета GoldenModellingFramework:

Manifest-Version: 1.0
Bnd-LastModified: 1377298131182
Build-Jdk: 1.6.0_26
Built-By: rjamal
Bundle-Activator: com.host.personalize.goldeneye.framework.activator.Activator
Bundle-Description: Managed dependencies and plugins across all Raptor applications.
Bundle-ManifestVersion: 2
Bundle-Name: GoldeneyeModellingFramework
Bundle-SymbolicName: GoldeneyeModellingFramework
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: com.host.personalize.goldeneye.framework.activator;us
 es:="org.osgi.framework,com.host.personalize.goldeneye.modelling.fra
 mework,org.osgi.util.tracker";version="1.0.0",com.host.personalize.
 goldeneye.modelling.framework;uses:="com.host.soaframework.common.except
 ions,org.osgi.framework,com.host.domain.sharedpersonalize.storagese
 rvice";version="1.0.0"
Import-Package: com.host.domain.sharedpersonalize.storageservice;ver
 sion="[1.0,2)",com.host.soaframework.common.exceptions;version="[1.4,2)
 ",org.osgi.framework;version="[1.6,2)",org.osgi.util.tracker;version="[
 1.5,2)"
Originally-Created-By: Apache Maven Bundle Plugin
ServicesURLStrategyVersion: 1.0.0-RELEASE
Tool: Bnd-1.50.0
X-Raptor-Source-Dir: S:\GitViews\GoldeneyeStream\GoldeneyeModellingFram
 ework/src/main/webapp,S:\GitViews\GoldeneyeStream\GoldeneyeModellingFr
 amework/src/main/resources,S:\GitViews\GoldeneyeStream\GoldeneyeModell
 ingFramework

А ниже файл pom.xml для пакета GoldeneyeModellingFramework:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <!-- POM Information about the Project -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.host.personalize.goldeneye.modelling.framework</groupId>
    <artifactId>GoldeneyeModellingFramework</artifactId>
    <version>1.0.0</version>
    <!-- Packing Type is bundle for OSGI Library Bundle -->
    <packaging>bundle</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.cglib</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.3.0</version><!--$NO-MVN-MAN-VER$ -->
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>4.3.0</version><!--$NO-MVN-MAN-VER$ -->
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.host.personalize.goldeneye</groupId>
            <artifactId>GoldeneyeStorageService</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

    <!-- Build Configration -->
    <build>
        <plugins>
            <!-- Apache Felix Bundle Plugin - For Generation of Manifest after Compile 
                phase -->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <!-- Configuration for generating the Manifest.mf -->
                <configuration>
                    <manifestLocation>src/main/resources/META-INF</manifestLocation>
                    <!-- Manifest Headers which need to customized during manifest generation -->
                    <instructions>
                        <Bundle-SymbolicName>GoldeneyeModellingFramework</Bundle-SymbolicName>
                        <Bundle-Activator>com.host.personalize.goldeneye.framework.activator.Activator</Bundle-Activator>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- Configuration of repositories for dependency resolution -->
    <repositories>
        <!-- Raptor Bundles Repository -->
        <!-- This is needed to locate the Raptor Parent project. Other repositories 
            come from the parent. -->
        <repository>
            <id>releases</id>
            <url>http://nxraptor/content/repositories/releases/</url>
            <releases>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>thirdparty</id>
            <url>http://nxraptor/content/repositories/thirdparty/</url>
            <releases>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

Дайте мне знать, если вам нужны какие-либо другие файлы для проекта GoldeneyeStorageService maven. Я не знаю, как решить эту проблему. Кто-нибудь может мне с этим помочь?

Некоторые обновления:-

Ниже приведен файл MANIFEST.MF для проекта GoldeneyeStorageService.

Manifest-Version: 1.0
Bnd-LastModified: 1377333824248
Build-Jdk: 1.6.0_26
Built-By: rjamal
Bundle-Description: Managed dependencies and plugins across all Raptor a
 pplications.
Bundle-ManifestVersion: 2
Bundle-Name: GoldenlseyeStorageService
Bundle-SymbolicName: GoldenlseyeStorageService
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: com.host.domain.sharedpersonalize.storageservice;use
 s:="com.host.soaframework.common.exceptions,com.host.marketplace.servic
 es.storageservice,com.host.personalize.services.storage.consumer.ge
 n,com.host.personalize.services.storage.consumer,com.host.soaframew
 ork.sif.service,com.host.marketplace.services,com.host.kernel.logger";v
 ersion="1.0.0",com.host.marketplace.services.storageservice;uses:="java
 x.xml.bind.annotation,com.host.marketplace.services,javax.activation";v
 ersion="1.0.0",com.host.personalize.services.storage.consumer;uses:
 ="javax.xml.ws,com.host.marketplace.services.storageservice";version="1
 .0.0",com.host.personalize.services.storage.consumer.gen;uses:="com
 .host.soaframework.common.exceptions,com.host.personalize.services.
 storage.consumer,com.host.soaframework.sif.impl.internal.service,com.eb
 ay.soaframework.sif.service,javax.xml.ws,com.host.marketplace.services.
 storageservice,com.host.soaframework.common.types,com.host.soaframework
 .common.impl.internal.schema,javax.xml.namespace,com.host.soaframework.
 common.registration";version="1.0.0"
Import-Package: com.host.kernel.logger;version="[1.19,2)",com.host.marke
 tplace.services;version="[1.7,2)",com.host.soaframework.common.exceptio
 ns;version="[1.4,2)",com.host.soaframework.common.impl.internal.schema;
 version="[1.4,2)",com.host.soaframework.common.registration;version="[1
 .4,2)",com.host.soaframework.common.types;version="[1.4,2)",com.host.so
 aframework.sif.impl.internal.service;version="[1.4,2)",com.host.soafram
 ework.sif.service;version="[1.4,2)",javax.activation,javax.xml.bind.ann
 otation,javax.xml.namespace,javax.xml.ws
ServicesURLStrategyVersion: 1.0.0-RELEASE
Tool: Bnd-1.50.0
X-Raptor-Source-Dir: S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageServic
 e/src/main/webapp,S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageService/
 src/main/resources,S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageService

person AKIWEB    schedule 24.08.2013    source источник


Ответы (1)


Сообщение об ошибке означает, что ваш пакет GoldeneyeModellingFramework импортирует пакет com.host.domain.sharedpersonalize.storageservice, но ни один пакет не экспортирует этот пакет. Поэтому импорт не может быть разрешен.

Вы сказали, что пакет GoldeneyeStorageService "включает" этот пакет, но что означает "включает"?? Вам нужно, чтобы этот пакет был экспортирован, т. е. указан в заголовке Export-Package. Если пакет включен в этот пакет, но не экспортирован, то это частный пакет, который не может быть импортирован никаким другим пакетом.

person Neil Bartlett    schedule 24.08.2013
comment
Спасибо Нил за предложение. Под включением я имею в виду, что я использую этот пакет в проекте GoldeneyeStorageService. Я обновил свой вопрос с помощью файла MANIFEST.MF для проекта GoldeneyeStorageService. И я думаю, что этот пакет уже есть в заголовке Export-Package в проекте GoldeneyeStorageService... Если я прав, вы говорите, что этот пакет должен быть экспортирован в файл GoldeneyeStorageService MANIFEST.MF? Поправьте меня, если я ошибаюсь.. - person AKIWEB; 24.08.2013
comment
Да. Этот манифест выглядит нормально, даже при беглом просмотре. Этот пакет установлен и разрешен в рамках? - person Neil Bartlett; 24.08.2013
comment
Я предполагаю, что ответ на ваш вопрос будет «Нет». Значит, мне нужно сначала установить пакет GoldeneyeStorageService, а затем попробовать установить GoldeneyeModellingFramework? Bcoz прямо сейчас, я не устанавливаю пакет GoldeneyeStorageService, а просто использую его как зависимость maven в файле GoldeneyeModellingFramework pom.xml. И если я сначала попытаюсь установить проект GoldeneyeStorageService, я получаю одно и то же исключение для разных пакетов. - person AKIWEB; 24.08.2013
comment
Вам нужно установить их как пакеты, но порядок не имеет значения. Если вы получаете одно и то же исключение для разных пакетов, это означает, что вам нужен пакет, который экспортирует эти пакеты. - person Neil Bartlett; 24.08.2013
comment
ЕСЛИ порядок не имеет значения, то почему он не работает в первую очередь, когда я пытаюсь установить GoldeneyeModellingFramework, а также этот пакет уже экспортирован в проект GoldeneyeStorageService? Я скоро открою новый вопрос, потому что, когда я пытаюсь сначала установить пакет GoldeneyeStorageService, он дает мне одно и то же исключение для разных пакетов. Я понял весь смысл, который вы только что сказали, но в этом исключении я не уверен, что я могу сделай еще.. Это будет иметь смысл, когда ты пройдешь через это.. - person AKIWEB; 24.08.2013
comment
Это не работает, потому что, как вы сказали, второй пакет также имеет неразрешенный импорт. Пожалуйста, не открывайте второй вопрос, потому что я уже ответил на него здесь, я думаю. Сообщение об ошибке просто означает, что вам нужно предоставить пакет, который экспортирует этот пакет. - person Neil Bartlett; 24.08.2013
comment
Да, Нил, для меня это совершенно логично. Этот вопрос похож на этот, но он требует какой-то другой альтернативы или того, как я думаю, будет работать или нет. Пожалуйста, просто пройдите через это. И если вы все еще думаете, что это не требуется, я отмечу это для удаления. Это вопрос - person AKIWEB; 24.08.2013