web-dev-qa-db-ja.com

クォーツHelloJob

Quartzは初めてで、コンパイルエラーが発生しています。 QuartzのHelloWorldのレッスン1に基づいて、HelloJobを実行しようとしています。 JobDetailを次のエラーで宣言するのに問題があります:タイプJobBuilderThe method newJob(Class<? extends Job>)は引数(クラス)に適用できません "。

元々、コードにはnewJobnewTrigger、および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で終わり、いくつかの例がこれを行っているようです。

明確化に本当に感謝します、

ありがとう!

19
Chandrew

次のコード行が必要です。

import static org.quartz.JobBuilder.*;

そして、で動作するはずです。うまくいけば。

編集:そして「HELLOJOB」がジョブを実装することを確認してください!!

そこ。

39
MirroredFate

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;
6
erhun

どうぞ:

public class HelloJob implements Job {

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
    System.out.println("Simple Exapmle");

 }
}
3
PrkInto

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.*;
2
Siva Pathiwada

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.");
     }
  }

チュートリアル はクォーツのドキュメントにあります。

1
AHLudan

Jobインターフェースを使用してHelloJob.classを実装する必要があります

を使用して

import org.quartz.Job;

public class HelloJob implements Job {

}
0
Milinda Bandara

この例のより詳細な説明は、この website にあります。そこには、インポートに必要なライブラリと、HelloJobクラスのジョブの実装があります。

0
birdman