osgi - 以编程方式识别 Karaf 中的 OSGI bundle 故障

标签 osgi apache-karaf osgi-bundle

我们使用 Karaf-4 作为 OSGI 容器。我们有多个与某个功能相关的 bundle 。当任何 bundle 的某个功能失败时,我们希望以编程方式进行识别。我们尝试了 BundleTracker 和 BundleListener,但是当 bundle 在“GracePeriod”状态下等待后失败时,我们没有收到通知。

我们可以在 karaf 控制台中使用“list”命令查看失败包的状态。我们希望通过通知以编程方式实现此目的,而不是在 karaf 控制台中执行“list”命令。

最佳答案

您可以使用BundleService作为 OSGi 服务。 getInfo 方法为您提供 BundleState 等信息。对于失败的 bundle ,您可以调用 getDiag 来获取详细状态。

其实这就是diag命令在内部执行。

关于osgi - 以编程方式识别 Karaf 中的 OSGI bundle 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48814293/

相关文章:

在 Karaf 2.4/Felix 4.x 中运行 jackrabbit 2.11 时出现 OSGi 错误

java - 在 Karaf 中使用 ssl 连接到数据源,得到 java.lang.NoClassDefFoundError : javax/net/ssl/TrustManager

java - apache karaf 中的 activemq,使用 xbean 加载配置

OSGI 捆绑状态宽限期

java - 运行 JUNIT 测试用例时无法加载 ApplicationContext

osgi - 如何处理来自 Bundle-Classpath 上的 jar 的 Import-Package 条目?

java - 瓦丁/OSGi : ScssStylesheet class not found

java - OSGi 包 list 中的包类路径的字符限制?

spring-boot - OSGi Karaf Spring Boot 2.1.4-发布错误

java - Karaf 中 PersistenceProviderImpl 的 ClassCastException