停止/停用当前的OSGi包

时间:2013-01-23 15:37:15

标签: java osgi

如果在其activate方法中抛出特定异常,如何停用当前包?

    public void activate(BundleContext bundleContext) {
        try{
             if(something) throw new Exception(); 
        } catch(Exception e) {
             //deactivate bundle... 
        }
    }

1 个答案:

答案 0 :(得分:0)

我假设您正在讨论声明式服务组件,在这种情况下,您可以让activate方法抛出异常(可能将其包含在运行时异常中),在这种情况下,组件将不会激活。

您应该意识到DS运行时可能会多次尝试激活它。

有一个非常相似的问题here