Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error occured instantiating job to be executed in Quartz sheduler

package org.quartz;      
import org.quartz.Scheduler;     
import org.quartz.JobDetail;    
import org.quartz.JobKey;    
import org.quartz.Trigger;    
import org.quartz.Job;    
import org.quartz.JobExecutionContext;    
import org.quartz.JobExecutionException;    
import org.quartz.SchedulerException;     
import org.quartz.impl.StdSchedulerFactory;     
import static org.quartz.JobBuilder.*;     
import static org.quartz.TriggerBuilder.*;     
import static org.quartz.SimpleScheduleBuilder.*;    
import static org.quartz.CronScheduleBuilder.*;    
import static org.quartz.CalendarIntervalScheduleBuilder.*;    
import static org.quartz.DateBuilder.*;    

class myJob implements Job {           
    public void execute(JobExecutionContext context)    
      throws JobExecutionException
    {
      System.out.println("Hello!  HelloJob is executing.");
    }
}

public class schedule{
    public static void main(String args[]) throws Exception{    
         System.out.println("Java working");

         try {
                    // Grab the Scheduler instance from the Factory                 
                JobKey jobKeyA = new JobKey("myJob", "group1");    
                JobDetail jobA = JobBuilder.newJob(myJob.class)    
                .withIdentity(jobKeyA).build();

                        // Trigger the job to run now, and then every 40 seconds
                Trigger trigger1 = TriggerBuilder    
                        .newTrigger()    
                        .withIdentity("dummyTriggerName1", "group1")    
                        .withSchedule(
                            CronScheduleBuilder.cronSchedule("0/5 * * * * ?"))
                        .build();

                      Scheduler scheduler = new StdSchedulerFactory().getScheduler();

                        // and start it off    
                      scheduler.start();

                        // Tell quartz to schedule the job using our trigger

                      scheduler.scheduleJob(jobA, trigger1);


            } catch (SchedulerException se) {                   
                se.printStackTrace();
            }    
    }       
}

And I am getting an error of instantiating job and then obviously All triggers of Job set to ERROR state. What is the reason? and please help it is very important. provide me the answer. Error

[ERROR] 28 Dec 03:03:30.008 PM
DefaultQuartzScheduler_QuartzSchedulerThread
[org.quartz.core.ErrorLogger]

An error occured instantiating job to be executed. job= 'group1.myJob'

org.quartz.SchedulerException: Problem instantiating class
'org.quartz.myJob'  [See nested exception:
java.lang.IllegalAccessException: Class
org.quartz.simpl.SimpleJobFactory can not access a member of class
org.quartz.myJob with modifiers ""]
    at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:58)
    at org.quartz.simpl.PropertySettingJobFactory.newJob(PropertySettingJobFactory.java:69)
    at org.quartz.core.JobRunShell.initialize(JobRunShell.java:127)
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:375)
Caused by: java.lang.IllegalAccessException: Class
org.quartz.simpl.SimpleJobFactory can not access a member of class
org.quartz.myJob with modifiers ""
    at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
    at java.lang.Class.newInstance(Class.java:436)
    at org.quartz.simpl.SimpleJobFactory.newJob(SimpleJobFactory.java:56)
    ... 3 more [INFO] 28 Dec 03:03:30.013 PM
DefaultQuartzScheduler_QuartzSchedulerThread
[org.quartz.simpl.RAMJobStore]

All triggers of Job group1.myJob set to ERROR state.

like image 377
striker0794 Avatar asked Dec 28 '15 09:12

striker0794


2 Answers

Your job class has to be public. Otherwise, the JobBuilder can not read it.

public class myJob implements Job {           
    public void execute(JobExecutionContext context) throws JobExecutionException {
      System.out.println("Hello!  HelloJob is executing.");
    }
}
like image 163
Benedikt Köppel Avatar answered Oct 27 '22 05:10

Benedikt Köppel


  1. Class should be public class
  2. Default constructor should be public
like image 33
Manoj Avatar answered Oct 27 '22 05:10

Manoj