我有一个方法返回名为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