Java EE 7自动计时器(EJB计时器)不适用于WildFly 8.1.0

时间:2014-06-12 22:03:45

标签: java java-ee timer ejb wildfly

我正在关注Using the Timer Service教程以构建简单的计划执行。尝试使用自动方法并使用WildFly 8.1.0 Final

会话Bean

@Singleton
@Startup
public class HelloJob {

    private static final Logger logger = Logger.getLogger(HelloJob.class);

    public HelloJob() {
        logger.error(">>> Hello Job Created.");
    }

    @Schedule(second="*")
    public void sayHello() {
        logger.error(">>> Server Hello!");
    }

}

在部署时,正确实例化了类,打印>>> Hello Job Created.消息,但永远不会调用方法sayHello()

根据教程,@Schedule(second="*")表示它应该每秒执行一次。

  

将属性设置为星号(*)表示全部   属性的允许值。

同样只有状态会话bean不允许用于计时器,我使用的是单例,也在示例中使用。

  

企业bean容器的计时器服务使您可以   为除所有类型的企业bean安排定时通知   有状态会话bean。

1 个答案:

答案 0 :(得分:10)

使用@Schedule(second="*", minute="*", hour="*")

小时和分钟的默认值为“0”,这可能会非常恼人,并且会强制您设置这些值。