我们正在使用Karaf-4作为OSGI容器。我们有几个与功能关联的捆绑包。当某个功能包发生故障时,我们希望通过编程进行识别。我们尝试了BundleTracker和BundleListener,但在处于“ GracePeriod”状态下等待捆绑失败后,我们没有收到通知。
我们能够在karaf控制台中使用“列表”命令查看故障包的状态。我们希望通过通知以编程方式实现这一目标,而不是在karaf控制台中执行“列表”命令。
您可以将BundleService用作OSGi服务。 getInfo方法为您提供了BundleState等其他功能。对于失败的捆绑包,您可以调用getDiag以获取详细状态。
实际上,这是diag命令在内部执行的操作。