OSGi DS:为什么绑定方法抛出的异常只被记录?

时间:2011-04-27 13:17:03

标签: osgi declarative-services

为什么规范只记录绑定方法抛出的异常?

我希望在这种情况下组件不会激活。

如何处理从绑定方法抛出的异常以确保正确设置组件?

1 个答案:

答案 0 :(得分:2)

仅仅因为服务引用的绑定引发异常并不一定意味着组件无法激活。由于组件知道异常(毕竟,它是抛出它的绑定方法),因此它可以以这样的方式实现,即它仍然可以被激活,例如,通过回退默认值或提供有限的服务。

绑定方法不应该抛出任何异常,这与可能导致激活失败的激活方法不同。

<强>参考:

OSGi 112.5.7:“如果绑定方法抛出异常,SCR必须使用日志服务记录包含异常的错误消息(如果存在),但组件配置的激活不会失败。”