0

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

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

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

4

1 回答 1

3

任何例外都可以。

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

于 2012-06-05T17:50:36.147 回答