【问题标题】:How do I fail in my declarative services activator?我的声明式服务激活器如何失败?
【发布时间】:2012-06-05 13:11:09
【问题描述】:

当我知道失败无法恢复时,在声明式服务的 activate() 方法中失败的最佳方法是什么?具体来说:我的服务可以通过带有元类型属性的 configadmin 进行配置。如果配置无效(例如格式错误的 URL),失败的最佳做法是什么?我目前的做法是抛出 IllegalArgumentException。有没有更好的办法? DS主机是否关注异常类型,还是所有异常都被同等对待?

4.2 规范只是说“如果激活方法抛出 异常,SCR 必须记录包含异常的错误消息 日志服务(如果存在),并且组件配置未激活。”这表明我可以抛出任何异常,而不管哪个异常。

我注意到 DS 会在某些情况下重试 activate 方法,例如如果其他依赖项之一发生更改。除非配置固定,否则是否有任何机制告诉基础设施不要打扰?还是我应该不担心,只是接受我的激活器会被额外调用几次?

【问题讨论】:

    标签: osgi declarative-services


    【解决方案1】:

    任何异常都可以。

    我认为您只是接受您的激活器可能会再次尝试。当配置固定时,可能随时发生。你可以禁用你的组件,但是你怎么知道什么时候重新启用它呢?

    【讨论】:

      猜你喜欢
      • 2019-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      相关资源
      最近更新 更多