0

失敗が回復不能であることがわかっている場合に、宣言型サービスの activate() メソッドで失敗する最善の方法は何ですか? 具体的には、私のサービスは、メタタイプ プロパティを使用して configadmin を介して構成できます。構成が無効な場合 (たとえば、不正な URL など)、失敗するためのベスト プラクティスは何ですか? 私の現在の慣行は、IllegalArgumentException をスローすることです。より良い方法はありますか?DS ホストは例外の種類に注意を払いますか、それともすべての例外が同じように扱われますか?

4.2 の仕様では、「activate メソッドが例外をスローした場合、SCR は Log Service (存在する場合) で例外を含むエラー メッセージをログに記録する必要があり、コンポーネント構成はアクティブ化されません」と単純に述べています。これは、例外をスローするだけでよく、どれが問題ではないことを示唆しています。

他の依存関係のいずれかが変更された場合など、状況によっては DS が activate メソッドを再試行することに気付きました。構成が修正されない限り、インフラストラクチャが気にしないようにするメカニズムはありますか? それとも、それについて心配する必要はなく、アクティベーターが数回追加で呼び出されることを受け入れる必要がありますか?

4

1 に答える 1

3

どんな例外でも構いません。

アクティベーターが再試行される可能性があることを受け入れるだけだと思います。構成が修正されると、いつでも発生する可能性があります。コンポーネントを無効にすることはできますが、再有効化するタイミングをどのように知るのでしょうか?

于 2012-06-05T17:50:36.147 に答える