簡體   English   中英

從OSGI命令提示符運行OSGI捆綁包:導入包缺少約束

[英]Running OSGI bundle from OSGI command prompt :Import-package missing constraint

我有一個與以下mainfest捆綁在一起的產品:

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.jarHelloCamera.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"

搜索后,

我發現問題出在清單文件上。 在我的設置中導出jar時,我說使用文件夾中已有的清單文件。

我從沒看過路徑指向的是什么(假設Eclipse可以正確設置它),但是Eclipse並未更改其位置,因此兩個jar都使用相同的Manifest文件。

學過的知識。 總是在盲目按完之前檢查表格。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM