我有一個方法返回名爲findItemByPIdEndDate()的項目列表,並在MngtImpl.java類中找到它。現在,我想在每隔一段時間執行這種方法,每小時可以這麼說這裏是我做過什麼至今:在Java中執行另一個類的方法...以及更多
這是CronSchedule.java
import org.quartz.CronTrigger;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.JobDetail;
public class CronSchedule {
public CronSchedule()throws Exception {
SchedulerFactory sf=new StdSchedulerFactory();
Scheduler sched=sf.getScheduler();
JobDetail jd=new JobDetail("job1","group1",CronJob.class);
CronTrigger ct=new CronTrigger("cronTrigger","group2","0 * * * * ?");
sched.scheduleJob(jd,ct);
sched.start();
}
public static void main(String args[]){
try{
new CronSchedule(); //Class where cron is created
}catch(Exception e){}
}
}
現在有了這個我有問題。這個類是基於時間約束(*在括號中)從上面的類中調用的,它執行MngtImpl類的方法。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.rosa.MngtImpl;
public class CronJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
MngtImpl pers = new MngtImpl();
pers.findItemByPIdEndDate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
這裏是我嘗試從上面的類中調用的方法。這種方法是在名爲MngtImpl.java的類中找到的
public List<Long> findItemByPIdEndDate() throws Exception {
List<Long> list = null;
try{
Session session = sessionFactory.getCurrentSession();
Query query = session.getNamedQuery("endDateChecker");
list = query.list();
}catch (HibernateException e){
throw new DataAccessException(e.getMessage());
}
return list;
}
現在,我要做的是。我需要根據一段時間(我可以隨時指定)運行這個上面的方法。我需要在bean factory xml文件中創建一個實際調用此調度器的bean,並調用此方法,並且我通過從CronScheldule.java調用CronJob.java來調用此方法,該方法調用另一個類的方法,並創建了一個可能工作或不工作的bean
<bean id="cronSchedule" class="com.mypackage.CronSchedule">
</bean>
但它不是工作,我期待和它相當複雜,我可能會得到一些幫助的代碼嗎?謝謝
我會遇到以下異常:
java.lang.NullPointerException 11:10:46,410 ERROR [STDERR]
at com.packftc.RulesManager.exception(RulesManager.java:25) 11:10:46,410 ERROR [STDERR]
at org.drools.agent.RuleAgent$2.run(RuleAgent.java:442) 11:10:46,410 ERROR [STDERR]
at java.util.TimerThread.mainLoop(Unknown Source) 11:10:46,410 ERROR [STDERR]
at java.util.TimerThread.run(Unknown Source)
這顯然是這樣做的錯誤的方式我已經試過像zilion事情至今:這裏是我想簡單的話做,我想從MngtImpl類執行findItemByPIdEndDate()方法每一分鐘。方法正常運行我寫了一個測試,並通過它。那麼我現在該做什麼?謝謝
你的問題的措辭有點複雜難以理解:-(你似乎有一個基本的想法,我建議你問一個更精確的問題,究竟什麼是不工作的 – KLE 2009-10-22 08:33:35
'但它不工作, 對不起,但這沒有幫助,它在幹什麼? 另外如果你使用的是Spring - 我認爲它有一些很好的Quartz包裝,你試過嗎? – 2009-10-22 08:38:47
我認爲它有一些很好的Quartz包裝,你試過他們?哪些,我不知道..「但它不工作,因爲我預期」我應該得到一個清單..但相反,我得到一個例外,空指針 – ant 2009-10-22 08:45:44