2011-02-08 58 views
1

我正在爲此苦苦掙扎了一個星期。 使用Jboss5.1.x,EJB3.0,quartz1.8 人向我推薦文檔,但看起來好像no1有真正的線索或不理解我。在服務器部署上無法啓動Quartz

有沒有辦法在EJB bean中啓動Java代碼來調度石英? 我已經明白如何初始化和循環石英調度程序..但是您如何實際調用INIT調度程序在應用程序部署上的方法?

如果您需要JBOSS調度程序首先調用調度Quartz的init方法,那麼Quartz對我來說毫無用處!我會繼續使用Jboss調度程序。

任何人有任何解決方案嗎?

謝謝, 射線。

回答

0

是的,但我想要的是讓我的石英開始部署。但我找到了解決方案,我正在使用

@Service(objectName = "..") 
@Management(...) 

並且該類將在我的項目部署後立即觸發。

0

我不知道我理解你的問題,但不能將Quartz scheduler工廠存儲在一個靜態變量中,並將其初始化爲靜態初始化方法或靜態方法?例如:

public static Scheduler sched; 

public static void init(ServletContext servletContext) throws SchedulerException { 
    if (sched == null || !sched.isStarted()) { 
     String quartzPropertiesLocation = UtilityClass.getYourQuartzConfig(); 
     try { 
      log.info(new File(quartzPropertiesLocation).getCanonicalPath()); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory(quartzPropertiesLocation); 
     sched = schedFact.getScheduler(); 
     sched.getContext().put(ServletContext.class.getName(), servletContext); 
     sched.start(); 
    } 
} 
相關問題