6

我正在尝试启动我的一个捆绑包,但是一旦启动它,就会出现以下异常。我不确定问题是什么。

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 框架,它工作正常,但是一旦我启动包,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>

它总是给我上述例外。BundleGoldeneyeModellingFramework依赖于GoldeneyeStorageService包含这个包的 maven 项目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 项目的任何其他文件,请告诉我。我不知道如何解决这个问题。谁能帮我这个?

一些更新:-

下面是GoldeneyeStorageService项目的 MANIFEST.MF 文件-

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
4

1 回答 1

7

该错误消息意味着您的包GoldeneyeModellingFramework导入了包com.host.domain.sharedpersonalize.storageservice,但没有包导出该包。因此无法解决导入问题。

您说该捆绑包GoldeneyeStorageService“包含”该包,但是“包含”是什么意思?您需要导出Export-Package此包,即在标题中列出。如果该包包含在该捆绑包中但未导出,则它是一个私有包,不能由任何其他捆绑包导入。

于 2013-08-24T09:24:18.863 回答