Java EE 6 @Startup和@Schedule永远不会被执行

Pau*_*ell 5 singleton ejb scheduling startup java-ee

我确信这个问题已被无数次问过,但我已经尝试了所有我读过的内容,似乎没有任何工作.我确信修复可能也很简单.

我有以下单例,应该在Web应用程序启动时执行但不执行,并且计划任务也不会运行.

@Singleton
@Startup
public class Scheduler {

    private static int count = 0;

    @PostConstruct
    public void onStartup() {
        System.out.println("Initialization success.");
    }

   @Schedule(second="*/10", minute="*", hour="*")
   public void execute() {
      System.out.println("its running count..."+count);
      count++;
   }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Glassfish服务器3.1.2.

任何帮助将不胜感激.

谢谢.

编辑

现在正在执行启动方法,但调度方法不会运行.

小智 9

我的问题是,我使用了错误的Singleton类,而不是javax.inject.Singletonjavax.ejb.Singleton

  • 应该是两个类中的哪一个? (2认同)

Aks*_*ert 5

添加另一个答案,因为Boreded自己的答案有一些问题.

设置persistence=false解决问题的原因可能是由于如果已keepstate设置为true,则不会重新创建持久定时器.

您应该在日志中看到以下内容

INFO: keepstate is true and will not create new auto timers during deployment.
Run Code Online (Sandbox Code Playgroud)

我想我的答案在这里(与罗兰Tiefenbrunner对同一个问题的答案合)覆盖问题有些很好.