无法启动OSGi服务未解决的要求

时间:2018-02-10 18:55:06

标签: maven osgi osgi-bundle

我在OSGi中提供了一个使用Spark来提供休息端点的服务。

我收到以下错误:

错误

Error executing command: Error executing command on bundles: Error starting bundle 66: Unable to resolve OSGiConsumerProducer.ProducerConsumer.helloendpoint [66](R 66.0): missing requirement [OSGiConsumerProducer.ProducerConsumer.helloendpoint [66](R 66.0)] osgi.wiring.package; (osgi.wiring.package=spark.Spark.get) Unresolved requirements: [[OSGiConsumerProducer.ProducerConsumer.helloendpoint [66](R 66.0)] osgi.wiring.package; (osgi.wiring.package=spark.Spark.get)]

我已经由POM定义编译如下:

<instructions>
    <Bundle-SymbolicName>${parent.groupId}.${parent.artifactId}.helloendpoint</Bundle-SymbolicName>
    <Bundle-Activator>com.osgi.endpoint.EndpointActivator</Bundle-Activator>
    <Import-Package>
        spark.Spark.get
    </Import-Package>
    <Export-Package>
        com.osgi.endpoint.HelloEndpointAPI
    </Export-Package>
    <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
</instructions>

我假设我只需要导出我的impl类使用的接口,然后导入Spark包,因为我在这个模块中使用它?

潜在问题:

我是否需要将Spark安装到Karaf?

1 个答案:

答案 0 :(得分:0)

您确定spark.Spark.get是Java包的名称吗?这听起来更像是方法名称。

我的建议是完全删除这些说明的Import-Package部分。该工具能够确定您的捆绑包需要导入哪些包。