osgi - 仅在 servicemix 上列出 bundle ID

标签 osgi apache-karaf osgi-bundle apache-servicemix

我正在使用 ServiceMix,我试图列出一些 bundle 并仅检索其中的 bundle ID。 我正在尝试执行以下操作:

osgi:list | grep -i | awk xxx

我尝试使用 awk,但 ServiceMix 中没有提供。 我也试过像这样使用 shell:exec:

osgi:list | grep -i | shell:exec awk 'xxx'

但是那也不管用,也许我的做法是完全错误的。 其他人是否有一些经验可以实现我的目标,即仅检索 bundle 的 ID?

最佳答案

你总是可以使用 Karaf 的 shell 语言(从 karaf 2.3.1 开始工作)

bundles = $.context bundles ;
echo "Printing bundle information" ;
each ($bundles) {
    symbolicName = $it symbolicName ;
    bundleId = (($it bundleid) toString) ;
    echo "Symbolic name : " $symbolicName " Bundle Id : " $bundleId ;
}

运行时会输出类似于:

Symbolic name :  org.apache.felix.framework  Bundle Id :  0
Symbolic name :  org.ops4j.pax.url.mvn  Bundle Id :  1
Symbolic name :  org.ops4j.pax.url.wrap  Bundle Id :  2
Symbolic name :  org.ops4j.pax.logging.pax-logging-service  Bundle Id :  3

关于osgi - 仅在 servicemix 上列出 bundle ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014100/

相关文章:

java - 如何在同一个 bundle (模块)内的另一个服务中使用服务?

android - 在 Android 中嵌入 OSGi Felix 导致 UnsupportedOperationException : can't load this type of class file

OSGI:当调用一个已经很忙的服务时会发生什么?

java - 有没有办法从另一个正在运行的包中激活/运行 osgi Bundle?

java - 如何在 Jetty 中向端口绑定(bind)添加重试

osgi - Apache Karaf 到底是什么?

java - 在 Eclipse 中使用多个 OSGi 包

java - OSGi 菲利克斯 : Sharing a class between the host application and a bundle possible?

java - OSGI 的 EJB 持久性问题

java - osgi 的好 orm