【发布时间】:2014-11-12 10:04:14
【问题描述】:
大家早上好,
我给你写信是因为我想创建一个 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注解的方法updateDataBase中,
-
在@Timeout 注释方法updateDataBase 中,我可能会插入一个捕获异常的try catch。但如果可能的话,我想找到一种方法来保持这个应用程序异常抛出。因为,通过 try catch,我“删除”了应用程序异常。
-
java 文档指出 Timeout 回调方法不能抛出应用程序异常。但是我想对一个方法使用@Timeout 注释,并且我希望这个方法,如果可能的话,当然,如果可能的话,抛出一个异常。你有什么想法可以调和这两个事实吗?非常感谢。托马斯
标签: java exception timer ejb-3.0