Java @GlassFish 2.1&;中未调用带计划注释的方法;EJB3

Java @GlassFish 2.1&;中未调用带计划注释的方法;EJB3,java,glassfish,ejb,schedule,Java,Glassfish,Ejb,Schedule,在我的无状态bean中,我有以下几行: @Schedule(minute="*/2", hour="*") public void doSomething() {} 我希望每2分钟调用一次这个方法,但是当我部署它时,什么都没有发生。此外,如果我将@Schedule放在一个bean中,并且没有客户机调用这个bean的任何方法(bean实例还没有创建),那么容器或任何东西会每隔2分钟调用这个方法吗 这是我第一次使用@Schedule annotation,如果有人能就这些问题给我一些建议,我将不胜

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

@Schedule(minute="*/2", hour="*")
public void doSomething() {}
我希望每2分钟调用一次这个方法,但是当我部署它时,什么都没有发生。此外,如果我将@Schedule放在一个bean中,并且没有客户机调用这个bean的任何方法(bean实例还没有创建),那么容器或任何东西会每隔2分钟调用这个方法吗

这是我第一次使用@Schedule annotation,如果有人能就这些问题给我一些建议,我将不胜感激

致以最良好的祝愿

James Tran是来自EE 6文档的计时器服务链接

请注意相关部分--

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

您可以尝试从ejb-jar.xml执行自动调度,而不是使用@Schedule,如果这有什么不同的话。从外观上看,我看不出你的设置有什么问题,除了尝试一下

@Schedule(minute="0/2", hour="*")

编辑参见下面的@bkails评论。这可能不会给您带来任何好处。

我使用的是NetBean 6.7.1和JavaEE5以及GlassFish v2.1。在我使用Java EE 6和GlassFish v3.1安装NetBean 7.0.1并使用它部署我的应用程序后,@Schedule注释最终可以按预期工作。

“对于表达式x/y,该属性被约束为从时间x开始的允许值集内的每个yth值。[……]通配符(*)可用于x位置,相当于0.“Hmmm…”。。。我在应用程序中使用JavaEE5和GlassFishV2.1,但在我看来,@Schedule注释是JavaEE6的一个特性。这就是问题的原因吗?@Kal--“那就行了”意味着JavaEE5不是问题的原因?如果是这样的话,我真的不知道为什么它不工作=(不..对不起,我应该解释得更好。是的..使用JAVEE5而不是JavaEE6可能是您的问题的原因。