@Schedule注释方法未在GlassFish 2.1& EJB 3

时间:2011-08-10 15:51:46

标签: java glassfish ejb schedule

在我的无状态bean中,我有以下几行:

@Schedule(minute="*/2", hour="*")
public void doSomething() {}

我希望每2分钟调用一次这个方法,但是当我部署它时,没有任何反应。此外,如果我将@Schedule放在bean中并且没有客户端调用此bean的任何方法(尚未创建bean实例),容器或其他任何内容每2分钟调用一次该方法吗?

这是我第一次使用@Schedule注释,如果有人能就这些问题给我一些建议,我将非常感激。

致以最诚挚的问候,

James Tran

2 个答案:

答案 0 :(得分:1)

Here是来自EE 6 docs的计时器服务的链接。

请注意相关部分 -

当部署包含使用@Schedule或@Schedules注释注释的方法的企业bean时,EJB容器会创建自动计时器。企业bean可以有多个自动超时方法,与程序不同timer,它只允许在企业bean类中使用@Timeout注释注释一个方法。

你可以尝试从ejb-jar.xml进行自动调度,而不是使用@Schedule,如果这有任何区别的话。从它的外观来看,除了尝试

之外,我看不出你如何设置它有什么问题
@Schedule(minute="0/2", hour="*")

编辑请参阅下面的@bkails评论。那可能不会给你买任何东西。

答案 1 :(得分:1)

我正在使用带有Java EE 5和GlassFish v2.1的NetBean 6.7.1。在我使用Java EE 6和GlassFish v3.1安装NetBean 7.0.1并使用它来部署我的应用程序之后,@ Schedudu注释最终可以按预期工作。