Quartzは初めてで、コンパイルエラーが発生しています。 QuartzのHelloWorldのレッスン1に基づいて、HelloJobを実行しようとしています。 JobDetail
を次のエラーで宣言するのに問題があります:タイプJobBuilder
のThe method newJob(Class<? extends Job>)
は引数(クラス)に適用できません "。
元々、コードにはnewJob
、newTrigger
、およびsimpleSchedule
で3つのエラーがありました。
// 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(...)なし。与えられた例とは異なり、私は先に進んでインポートを追加し、2/3エラーを取り除いたnewJob、newTriggerなどの前にクラス呼び出しを添付しました。しかし、エラーが続くようです
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の例をquart2.2.xで機能させるには、以下の4つのインポートを追加する必要があります。
import org.quartz.SimpleTrigger;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;
どうぞ:
public class HelloJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Simple Exapmle");
}
}
Quartz 2 APIは、Quartz 1(1.5、1.6、および1.7)クラス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.*;
1-
Quartzは、ドメイン固有言語を定義する「ビルダー」クラスを提供します
不足している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.");
}
}
チュートリアル はクォーツのドキュメントにあります。
Job
インターフェースを使用してHelloJob.class
を実装する必要があります
を使用して
import org.quartz.Job;
public class HelloJob implements Job {
}
この例のより詳細な説明は、この website にあります。そこには、インポートに必要なライブラリと、HelloJobクラスのジョブの実装があります。