Java 搜索Quartz scheduler的DBJobStore中存储的现有作业时出现问题

Java 搜索Quartz scheduler的DBJobStore中存储的现有作业时出现问题,java,quartz-scheduler,Java,Quartz Scheduler,我正在使用Quartz scheduler的DB Job Store定期安排我的运行。为了获取所有现有作业及其状态,我使用以下代码: for(String jobGroupName : scheduler.getJobGroupNames() { for(String jobName : scheduler.getjobNames(jobGroupName) { JobDetail jobDetail = scheduler.getJobDetai

我正在使用Quartz scheduler的DB Job Store定期安排我的运行。为了获取所有现有作业及其状态,我使用以下代码:

    for(String jobGroupName : scheduler.getJobGroupNames() {
        for(String jobName : scheduler.getjobNames(jobGroupName) {
            JobDetail jobDetail = scheduler.getJobDetail(jobName, jobGroupName);
            Trigger[] triggers = scheduler.getTriggersOfJob(jobName, jobGroupName); 
            Trigger trigger = triggers[0];
            int jobState = scheduler.getTriggerState(trigger.getName(), trigger.getGroup());
        } 
    }
我还实现了如下的作业界面

    public class jobImpl implements Job {
        public void execute(JobExecutionContext arg) {
          // My Code 
        }
    }
当我调用获取现有作业及其状态的代码时(第一个代码示例),jobImpl中的execute方法会被触发

有人能帮我解决这个问题吗

@托马斯兹

以下是堆栈跟踪:

      java.lang.NullPointerException 
      [junit] at com.JobImpl.execute(JobImpl.java:24)                 
      [junit] at org.quartz.core.JobRunShell.run(JobRunShell.java:216) 
      [junit] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

您是否能够在
jobImpl.execute()
内设置断点,并从调试器粘贴stacktrace(甚至是屏幕截图)?我想看看这个方法是如何被触发的……嗨,Tomasz,这里是堆栈跟踪:java.lang.NullPointerException[junit],位于com.JobImpl.execute(JobImpl.java:24)[junit],位于org.quartz.core.JobRunShell.run(JobRunShell.java:216)[junit]位于org.quartz.siml.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)您使用的是哪个版本的Quartz?您是否确定您的代码触发了作业?stacktrace看起来像一个普通的计划作业执行。您的问题中的哪一行代码触发了作业?您可以有选择地注释它们吗?我使用的是Quartz-1.0。作业是从代码中的多个位置触发的。例如,第2行(scheduler.getJobNames()),第3行(scheduler.getJobDetail()),第4行,第6行。当我注释掉每一行并进行检查时,调用的数量减少了。由于只有第一个for循环,而其中没有任何内容,因此作业类根本不会被调用。因此,看起来调用是从该代码本身触发的。您能在
jobImpl.execute()中设置断点吗
并从调试器中粘贴stacktrace(甚至屏幕截图)?我想看看这个方法是如何触发的……嗨,Tomasz,这里是堆栈跟踪:java.lang.NullPointerException[junit],位于com.JobImpl.execute(JobImpl.java:24)[junit]位于org.quartz.core.JobRunShell.run(JobRunShell.java:216)[junit]位于org.quartz.siml.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)您使用的是哪个版本的Quartz?您是否确定您的代码触发了作业?stacktrace看起来像一个普通的计划作业执行。您的问题中的哪一行代码触发了作业?您可以有选择地注释它们吗?我使用的是Quartz-1.0。作业是从代码中的多个位置触发的。例如,第2行(scheduler.getJobNames())、第3行(scheduler.getJobDetail())、第4行、第6行。当我注释掉每一行并检查时,调用的数量减少了。由于只有第一个for循环,而其中没有任何内容,所以作业类根本没有被调用。因此,看起来调用是从这段代码本身触发的。