我正在尝试使用quartz来安排grails中的作业而不使用插件。 这是代码:
1 - RunMeTask.java
package tt;
public class RunMeTask {
public void printMe() {
System.out.println("Run Me ~");
}
}
2 - resources.groovy(在conf / spring下)
import org.springframework.scheduling.quartz.JobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.scheduling.quartz.SimpleTriggerBean;
import tt.RunMeTask
beans = {
runMeTask(RunMeTask){}
runMeJob(JobDetailFactoryBean) {
targetObject = ref('runMeTask')
targetMethod = "printMe"
}
simpleTrigger(SimpleTriggerBean){
jobDetail = ref('runMeJob')
repeatInterval = "5000"
startpDelay = "1000"
}
schedulerFactoryBean(SchedulerFactoryBean){
jobDetails = [ref('runMeJob')]
triggers = [ref('simpleTrigger')]
}
}
我收到以下异常: 编译期间出现致命错误org.apache.tools.ant.BuildException:java.lang.IncompatibleClassChangeError:class org.springframework.scheduling.quartz.SimpleTriggerBean将接口org.quartz.SimpleTrigger作为超类(使用--stacktrace来查看完整的迹线)
任何人都可以帮忙吗?
答案 0 :(得分:0)
问题中的代码有1处变化:
RunMeTask.java(也可以是RunMeTask.groovy)必须实现runnable等等 它看起来像这样:
包tt;
import java.io.File;
import java.io.IOException;
import java.util.Random;
公共类RunMeTask实现Runnable {
static Random r = new Random();
public void printMe()抛出IOException {
文件f =新文件(“c:\ ofer.txt”+ r.nextInt());
f.createNewFile();
的System.out.println( “FFF”);
}
public void run(){
尝试{
printMe();
} catch(IOException e){
// TODO自动生成的捕获块
e.printStackTrace();
}
}
}
一个有趣的事情是“fff”的println只发生了2次,但每隔5秒创建一个新文件。
好的,现在它在c目录中每5秒创建一个新文件。 没有插件也没有麻烦。如果有人知道为什么System.out.println(“fff”);只有2次,我很乐意知道。
感谢