繁体   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