我是EJB 3的新手。我使用以下代码启动无尽的EJB 3计时器
然后将其部署在JBOSS 4.2.3上

@Stateless
public class SimpleBean  implements SimpleBeanRemote,TimerService  {

@Resource
TimerService timerService;
private Timer timer ;
@Timeout
public void timeout(Timer timer) {
    System.out.println("Hello EJB");

 }
}

然后叫它
  timer = timerService.createTimer(10,  5000, null);

效果很好。我创建了一个客户端类,该客户端类调用一个创建计时器的方法和一个在计时器超时时调用的方法。

我忘了打电话取消
那么它不会停止.redeploy与cancel调用永远不会停止它。重新启动Jboss 4.2.3永远不要停止它。如何停止EJB计时器?
感谢您的帮助。

最佳答案

    public void stop(String timerName) {
    for(Object obj : timerService.getTimers()) {
        Timer t = (Timer)obj;
        if (t.getInfo().equals(timerName)) {
        t.cancel();
        }
    }
}

09-04 23:17