timer - EJB @Timeout 不工作

标签 timer ejb-3.1

我想每两秒唤醒一次 ejb 计时器。为此,我创建 ScheulerExpression 作为下面的代码......

package com.fks.nclp.ejb.timer.service;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.LocalBean;
import javax.ejb.ScheduleExpression;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.TimerConfig;
import javax.ejb.TimerService;

import com.sun.jersey.spi.resource.Singleton;


@LocalBean
@Singleton
@Startup
public class HelloWorldService {


    @Resource
    TimerService timerService;

    @PostConstruct
    public void initialize(){
            System.out.println("EJB PRE CONSTRUCT");
            ScheduleExpression expression = new ScheduleExpression();

            //SET TIMER TO 2 SEC            
            expression.hour("*");
            expression.minute("*");
            expression.second("*/2");

            timerService.createCalendarTimer(expression,new TimerConfig("TimerScheduler",false));


    }


    @Timeout
    public void startTimer(){
        System.out.println("THIS IS EJB TIMER PROGRAM");
    }

}

但是...EJB 容器不会每两秒唤醒一次调度程序。

对此有什么建议吗? 我怎样才能让表情每两秒醒来一次。

谢谢, 冈詹。

最佳答案

有两件事可能导致问题:

  1. 导入语句似乎不正确,它是 com.sun.jersey.spi.resource.Singleton,但应该是 javax.ejb.Singleton

  2. 尝试删除 @LocalBean 注释。

关于timer - EJB @Timeout 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860230/

相关文章:

javascript - 与定时器异步运行

typescript - 如何停止 rxjs 定时器

java - Spring Security + JSR 250 + EJB 3.1 不工作

ejb-3.0 - 嵌入式 EJB 容器与实际服务器容器有什么区别

java - 委托(delegate) "task"(例如 :Runnable) inside a method of a Session Bean

java - 在 java 中创建一个计数计时器(仅秒和毫秒)

java - 如何创建一个在 x :00 x:15 x:30 and x:45 do something different at 2:00 运行的线程

ios - 动画 24 张大图像 - 每张 728x936 大小

java - : Entity Beans are no longer supported

java - EJB 本地包括远程