2012-06-05 24 views
0

當我知道失敗是不可恢復的時,在聲明式服務的activate()方法中失敗的最佳方式是什麼?具體來說:我的服務可以通過configadmin和metatype屬性進行配置。如果配置無效(例如說格式不正確的URL),最佳實踐失敗方式是什麼?我目前的做法是拋出IllegalArgumentException。有沒有更好的辦法? DS主機是否關注異常類型,還是所有異常處理都是相同的?我如何在我的聲明式服務激活器中失敗?

4.2規範只是說「如果激活方法拋出 異常,SCR必須登錄包含異常與 日誌服務,如果存在的話,和組件配置沒有激活的錯誤消息」。這表明我可以拋出任何異常,哪一個並不重要。

我注意到,在某些情況下,DS會重試activate方法,就像其他依賴項之一發生更改一樣。除非配置是固定的,否則是否有任何機制可以告訴基礎架構不要打擾?或者我應該只是不擔心它,只是接受我的催化劑將被稱爲幾次額外的時間?

回答

3

任何異常都可以。

我認爲你只是接受你的催化劑可能會再次嘗試。當配置固定時可能隨時發生。你可以禁用你的組件,但是你怎麼知道什麼時候重新啓用它?