Architecture ApacheKaraf和ApacheCommons捆绑包

Architecture ApacheKaraf和ApacheCommons捆绑包,architecture,osgi,apache-karaf,Architecture,Osgi,Apache Karaf,好的,我想问一些关于ApacheKaraf的问题(这是我第一次向Karaf部署捆绑包)。我正在部署一个捆绑包,它使用了很多org.apache.commons.*捆绑包。例如,当我部署我的捆绑包并尝试启动它时,Karaf抛出了一个关于找不到org.apache.commons.pools的错误。我在谷歌上搜索了一下,并运行了以下程序: osgi:install mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.comm

好的,我想问一些关于ApacheKaraf的问题(这是我第一次向Karaf部署捆绑包)。我正在部署一个捆绑包,它使用了很多org.apache.commons.*捆绑包。例如,当我部署我的捆绑包并尝试启动它时,Karaf抛出了一个关于找不到org.apache.commons.pools的错误。我在谷歌上搜索了一下,并运行了以下程序:

osgi:install mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-pool
这安装了丢失的捆绑包,我点击了下一个。虽然我知道所需的捆绑包没有安装到OSGI容器中,但我有一些问题需要澄清

  • 据我所知,我正在安装的捆绑包使用某种servicemix捆绑包。 所以我想知道这是必要的,我能不能添加一个org.apache.commons.pool包而不是一个完整的servicemix包
  • 当我缺少一个bundle时,我如何找到要使用的maven url。例如,假设我需要一个foobar捆绑包,如果我不知道url,我将如何添加该捆绑包?由于找不到package=org.apache.log,我现在无法启动捆绑包。那么我怎么知道如何添加这个呢
  • 捆绑包和功能之间的区别
希望问题足够清楚。我正在与karaf取得进展,只需要澄清这些要点。

并非所有Java“jar”都与OSGi兼容,它们需要具有

当我需要从控制台添加依赖项时,我遵循以下步骤:

  • 在以下位置搜索图书馆:
  • 请尝试按如下方式安装:

    安装mvn:[组id]/[工件id]/[版本]

  • 如果它不是一个OSGi库,那么我会搜索它。在这个存储库中,所有的bundle都是OSGi,但是它们有过时的版本是正常的

  • 我的最后一个选择是使用Karaf wrap部署器,它允许您部署非OSGi捆绑包。检查一下

关于特性,特性只是一组包。阅读了解更多详细信息。

如果您使用的是karaf,请从karaf控制台运行此命令:bundle:install mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-lang/2.46