Ответ 1
Вам нужна эта строка кода:
import static org.quartz.JobBuilder.*;
А потом в должен работать. Будем надеяться.
Изменить: И УБЕДИТЕСЬ, ЧТОБЫ ЗАВЕРШИТЬ РАБОТУ "HELLOJOB"!
Там.
Я новичок в Quartz, и я столкнулся с компиляционной ошибкой. Я просто пытаюсь запустить HelloJob на основе урока кварца 1 для Hello World. У меня возникла проблема с объявлением JobDetail
с ошибкой: The method newJob(Class<? extends Job>)
в типе JobBuilder
не применим для аргументов (класса) ".
Первоначально код имел 3 ошибки в newJob
, newTrigger
и simpleSchedule
был
// define the job and tie it to our HelloJob class
JobDetail job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
// Trigger the job to run now, and then repeat every 40 seconds
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(40)
.repeatForever())
.build();
без JobBuilder.newJob(...), TriggerBuilder.newTrigger(...), SimpleScheduleBuilder.simpleSchedule(...). В отличие от приведенного примера, я пошел вперед и добавил импорт и присоединил вызовы класса перед newJob, newTrigger и т.д., Которые избавились от ошибок 2/3. Но, похоже, ошибка сохраняется с помощью
JobDetail job = JobBuilder.newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build();
Я также попытался заменить свою декларацию на работу
JobDetail job = new JobDetail("job1", "group1", HelloJob.class);
но заканчивается на Cannot instantiate the type JobDetail
, и, похоже, это несколько примеров.
Будет действительно признателен за разъяснение,
Спасибо!
Вам нужна эта строка кода:
import static org.quartz.JobBuilder.*;
А потом в должен работать. Будем надеяться.
Изменить: И УБЕДИТЕСЬ, ЧТОБЫ ЗАВЕРШИТЬ РАБОТУ "HELLOJOB"!
Там.
Вам нужно добавить четыре импорта для примеров helloJob для работы в quart 2.2.x
import org.quartz.SimpleTrigger;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
API-интерфейсы Quartz 2 сильно отличаются с Quartz 1 (1.5,1.6 и 1.7) Class JobDetail { }
кварц-1.6.6: http://javasourcecode.org/html/open-source/quartz/quartz-1.6.6/org/quartz/JobDetail.html
Кварц 2:
public interface JobDetail extends Serializable, Cloneable {
}
// we have to create JobDetail in the below way.
JobDetail job = newJob(HelloJob.class)
// we have to create Trigger in the below way.
Trigger trigger = newTrigger()
Не забудьте импортировать ниже
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
Здесь вы идете:
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Simple Exapmle");
}
}
1-
Quartz предоставляет классы "builder", которые определяют язык, специфичный для домена
Вы можете импортировать отсутствующий DSL через:
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
2- Убедитесь, что класс HelloJob
реализует org.quartz.Job
не любое другое задание:
public class HelloJob implements org.quartz.Job{
public void execute(JobExecutionContext context) throws JobExecutionException{
System.out.println("Hello! HelloJob is executing.");
}
}
В документации кварца вы можете найти tutorial.
Более подробное описание этого примера на этом сайте. Там вы можете найти библиотеки, необходимые для импорта, а также реализацию задания в классе HelloJob.
Вы должны реализовать HelloJob.class
с интерфейсом Job
используя
import org.quartz.Job;
public class HelloJob implements Job {
}