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

我正在按照使用定时器服务教程来构建一个简单的计划执行。 尝试自动方法并使用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计划定时通知。

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

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