簡體   English   中英

OSGi-檢查一組捆綁包是否可以一起啟動(在運行之前)

[英]OSGi - Check that a set of bundles can be started together (before running)

使用一組OSGi捆綁包,有一種方法可以在運行時檢查它們是否一起部署在OSGi容器中,

org.osgi.framework.BundleException: The bundle "bundle_1.2.3 [n]" could not be resolved. Reason: Missing Constraint: Import-Package:

由於MANIFEST.MF或其他構建工具中已有信息,
應該可以在編譯時檢查所有的Import-PackageExport-Package

您可以將所有捆綁軟件安裝到OSGi框架中並解決它們,而無需啟動它們。 執行解析的調用是FrameworkWiring.resolveBundles(null) 這將返回一個布爾值,指示捆綁包是否可以解析。

為了獲得有關解決問題的更多詳細信息,您可以嘗試tp啟動一個或多個未解決的包。 因為您知道它們無法解決,所以沒有任何可能真正啟動的危險,但是您將獲得BundleException給出了解析錯誤。

您可以使用bndtools 它有一個解析器,可以檢查捆綁軟件是否可以解析,甚至可以在構建捆綁軟件列表時為您提供幫助。

對於Apache karaf,有一個用於karaf功能文件的驗證器,該驗證器在構建時可以確保捆綁包暫時關閉。

暫無
暫無

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

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