2015-11-02 77 views
2

我嘗試通過在ServletA傳遞參數沒有在石英1.6

 JobDataMap map = new JobDataMap(); 
     map.put("date", "20151101"); 
     scheduler = new StdSchedulerFactory().getScheduler(); 
     scheduler.triggerJob(jobName, groupName, map); 

當我觸發職吧使用石英(1.6)API參數工作,它的工作。 但是我無法從下面的代碼中獲取JobA中的參數。 映射爲空。

JobDataMap map = jobExecutionContext.getJobDetail().getJobDataMap(); 
    String date = (String) map.get("date"); 

我想念一些重要的東西嗎? 感謝您的幫助。

回答

1

參數映射可以從作業或/和觸發器傳遞到執行。在您的解決方案中,您明確地嘗試獲取作業的數據映射(位於ctx.getJobDetail().getJobDataMap()),因爲您通過觸發器設置了參數,因此它是null

可以使用JobExecutionContext的getMergedJobDataMap得到一個參數映射來自合併:

JobDataMap map = jobExecutionContext.getMergedJobDataMap(); 
String date = (String) map.get("date"); 
+0

這正是我需要的。非常感謝你~~~ – Louis