0

我有一个包含以下主要内容的捆绑包:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: HelloCamera
Bundle-SymbolicName: HelloCamera
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: hellocamera.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Import-Package: cameraservice, cameraserviceimpl, org.osgi.framework

Layout:
    HelloCamera
       -> hellocamera
            -> Activator.java

以及带有此清单的第二个捆绑包:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: CameraService
Bundle-SymbolicName: CameraService
Bundle-Version: 1.0.0.qualifier
Bundle-Localization: plugin
Export-Package: cameraservice, cameraserviceimpl
Import-Package: org.osgi.framework
Bundle-Activator: cameraserviceimpl.Activator

Layout:
    CameraService
       -> cameraservice
            -> CameraService.java
       -> cameraserviceimpl
            -> Activator.java 
            -> CameraServiceImpl.java

我可以从 Eclipse 运行第一个包,一切正常。CameraService.jar 然后我将两个捆绑包HelloCamera.jar分别导出为

我打开了我的 OSGI 控制台,java -jar equinox.jar -console然后

osgi> install file:CameraService.jar
osgi> install file:HelloCamera.jar
osgi> ss
           id    State         Bundle
           17   INSTALLED      HelloCamera_1.0.0.qualifier
           18   RESOLVED       unknown_0.0.0 [18]

然后我得到

The Bundle could not be resolved. Reason: Missing Constraint: Import-Package: cameraservice; version="0.0.0"
4

1 回答 1

1

搜索后,

我发现问题出在清单文件上。在我的设置中导出罐子时,我说使用文件夹中已有的清单文件。

我从来没有看过路径指向什么(假设 eclipse 会正确设置它)但是 Eclipse 没有改变它的位置,所以两个 jar 都使用相同的 Manifest 文件。

学过的知识。在盲目按完成之前始终检查表格。

于 2013-09-02T18:31:25.360 回答