2012-12-20 73 views
2
@Startup 
@Singleton 
public class TestTimer { 
    private static int count = 0; 
    @Schedule(second="*/10", minute="*", hour="*", info="MyTimer") 
    public void execute() { 
     System.out.println("its running count..."+count); 
     count++; 
    } 
} 

我想在Tomcat 7.xx此代碼運行,請讓我知道在web.xml或ejb-jar.xml中以運行所需要的配置啓動。在Tomcat中使用EJB 3.1 @Startup anotation 7.XX

回答

2

Tomcat是servlet容器,也就是說它並不是要處理Singleton bean肯定是的Enterprise Java Beans。有辦法實現它,但你不想這樣做。一個建議 - 使用應用程序服務器,它既是servlet容器又是EJB容器。

建議:

  • Glassfish(Java EE的參考實現)
  • TomEE(從OpenEJB的莖,你可能會發現它最熟悉的)
  • JBoss
+2

同意,Tomcat是無法理解這一點。 TomEE絕對是。下載並嘗試一下。 – jlmonteiro

+0

謝謝,我使用tomee-plus-1.5.1,它運行平穩,但不會自動運行我的方法,我從中找出以下消息:INFO:Scheduler元數據:Quartz Scheduler(v2.1.6) 'OpenEJB-TimerService-Scheduler'with instanceId'OpenEJB' 調度程序類:'org.quartz.core.QuartzScheduler' - 在本地運行。 未開始。 目前處於待機模式。 執行的作業數量:0 使用線程池'org.apache.openejb.core.timer.DefaultTimerThreadPoolAdapter' - 有0個線程。 使用作業存儲'org.quartz.simpl.RAMJobStore' - 不支持持久性。並沒有聚集。 – rykhan

+0

我已經看到你將其作爲單獨的問題轉貼,祝你好運!我對Quartz Schedule沒有太多經驗,所以在這裏沒有多大的幫助。 –