簡體   English   中英

EJB Timer:放入帶有Exception(@Timeout批注)的方法中

[英]EJB Timer : put in a method with Exception, the @Timeout annotation

大家早上好,
我寫信給您,是因為我想創建一個EJB計時器。
但是我的@Timeout注釋方法必須引發應用程序異常。
而且我在文檔中看到@Timeout方法不能引發應用程序異常。

  @Stateless@Local @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) public class AccesCacheImpl implements AccesCache { @Resource private TimerService serviceMinuteur; // i have to make an updateDataBase every 30 minutes public void creerTimer() { serviceMinuteur.createTimer(1000, 1800000, "MinuteurCache"); } public void detruireTimer() { Timer timerCourant; for (final Object timer : serviceMinuteur.getTimers()) { timerCourant = (Timer) timer; if ("MinuteurCache".equals(timer)) { timerCourant.cancel(); } } } @Timeout public void updateDataBase(final Timer pTimer) throws AccesNomenclatureException { ..... ..... ..... } } 


我從EJB編程開始:您找到我的代碼了嗎?
而且我有必要保持這種例外。
您遇到過這樣的問題嗎?
非常感謝你。

應用程序異常旨在向呼叫者提供更多信息。 在這種情況下, @Timeout方法的調用者是EJB容器,該容器不知道您的應用程序異常的意圖,因此不允許使用它們。 如果需要向容器發出故障信號以使其重試,則建議捕獲AccesNomenclatureException並將其重新拋出為EJBException ,這是系統異常而不是應用程序異常。 否則,如果您只是想忽略故障,請抓住並記錄下來,而不是重新拋出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM