簡體   English   中英

OSGi捆綁包未啟動:缺少要求osgi.wiring.package; >&(osgi.wiring.package = org.apache.felix.dm)

[英]OSGi bundle not started : missing requirement osgi.wiring.package; > &(osgi.wiring.package=org.apache.felix.dm)

我一直在嘗試遵循“使用OSGi構建模塊化雲應用程序”。 在“創建第一個OSGi應用程序”這本書的第3章中,作者描述了如何使用bndtools在eclipse中使用服務創建一個簡單的OSGi應用程序。

下面是我的類和配置的屏幕截圖。

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

我面臨的問題是

'! 無法解析捆綁包:[agenda.service.simple-0.0.1捆綁包議程.service.simple中的未解決約束[9]:無法解析9.0:缺少要求[9.0] osgi.wiring.package; (&(osgi.wiring.package = org.apache.felix.dm)(版本> = 3.0.0)(!(版本> = 4.0.0)))

]! 無法啟動捆綁包議程.service.simple-0.0.1,異常捆綁包議程.service.simple中未解決的約束[9]:無法解決9.0:缺少要求[9.0] osgi.wiring.package; (&(osgi.wiring.package = org.apache.felix.dm)(版本> = 3.0.0)(!(版本> = 4.0.0)))____________________________'

另外,當我嘗試在gogo shell中發出命令時,有時也不會正確輸入。 但最終,捆綁包狀態看起來像

G! lb gogo:CommandNotFoundException:找不到命令:b

G! lb gogo:CommandNotFoundException:找不到命令:llb

G!

G!

G!

G!

G!

G!

lb START LEVEL 1 ID |狀態|級別|名稱

 0|Active | 0|System Bundle (4.0.3) 1|Active | 1|Apache Felix Dependency Manager (4.0.1) 2|Active | 1|Apache Felix Dependency Manager Shell (4.0.1) 3|Active | 1|Apache Felix Gogo Command (0.14.0) 4|Active | 1|Apache Felix Gogo Runtime (0.10.0) 5|Active | 1|Apache Felix Gogo Runtime (0.12.1) 6|Active | 1|Apache Felix Gogo Shell (0.10.0) 7|Active | 1|osgi.cmpn (5.0.0.201305092017) 8|Active | 1|agenda.api (0.0.0.201505171119) 9|Installed | 1|agenda.service.simple (0.0.1) 

您的議程.service.simple捆綁包正在尋找一個捆綁包,該捆綁包可以導出3.0.0到4.0.0之間的org.apache.felix.dm版本,但是只能找到Apache Felix Dependency Manager導出的4.0.1版本。 。

通常,這可能是由於與您運行的felix版本不同而導致的。

通常,這可能是由於與您運行的felix版本不同而導致的。

的確,這很可能是由於Bndtools為構建路徑依賴項選擇了最低版本(在指定版本范圍內),為runbundles選擇了最高版本(在指定版本范圍內)。

在您的情況下,未指定范圍,因此版本org.apache.felix.dependencymanager版本3.1.0將用於構建路徑,版本4.0.1將用於運行應用程序。

要使用版本4的依賴項管理器,可以將buildpath條目更改為:

org.apache.felix.dependencymanager;version='[4,5)'

或者要在運行時使用版本3,可以將-runbundles更改為

org.apache.felix.dependencymanager;version='[3,4)',\
org.apache.felix.dependencymanager.shell;version='[3,4)',\

我也在看上面的書。 在嘗試運行該項目時,我遇到了同樣的問題。 發生此問題的原因是,我們為項目手動提供了dependency manager .jars ,而后者又與項目所需的.jar版本沖突。

我使用Amdatu Blueprint在“高級”模式下進行了新的Eclipse設置,並且能夠獲取正在運行的項目。 您可以在下面的鏈接中獲取安裝詳細信息:

http://amdatu-repo.s3.amazonaws.com/amdatu-blueprint/r1/docs/index.html#_install_eclipse

暫無
暫無

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

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