Grails上的Quartz插件错误

Grails上的Quartz插件错误,grails,groovy,quartz-scheduler,Grails,Groovy,Quartz Scheduler,我在一个grails项目中安装了Quartz插件,但是当我编译时,它给了我以下错误 Error loading plugin manager: startup failed: C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 116: You cannot create an instance from the abstract interface 'org.quartz.C

我在一个grails项目中安装了Quartz插件,但是当我编译时,它给了我以下错误

Error loading plugin manager: startup failed:
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 116: You cannot create an instance from the abstract interface 'org.quartz.CronTrigger'.
 @ line 116, column 35.
                   Trigger trigger = new CronTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, cronExpression)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 122: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 122, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, new Date(), null, repeatCount, interval)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 128: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 128, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, scheduleDate, null, 0, 0)
                                     ^
C:\Users\X\.grails\1.3.7\projects\Val\plugins\quartz-0.4.2\QuartzGrailsPlugin.groovy: 133: You cannot create an instance from the abstract interface 'org.quartz.SimpleTrigger'.
 @ line 133, column 35.
                   Trigger trigger = new SimpleTrigger(generateTriggerName(), GTCP.DEFAULT_TRIGGERS_GROUP, jobName, jobGroup, scheduleDate, null, 0, 0)
                                     ^
4 errors
这就是我想要实现的

class MyJob  {
  static triggers = {
    cron name: 'myTrigger', cronExpression: "0 0 6 * * ?"
  }
 def group = "MyGroup"

 def execute(){
   print "Job run!"
 }
}

注意:插件版本是0.4.2,我真的无法复制。我创建了一个新项目并安装了插件,它运行得非常好。您没有试图创建MyJob类的实例,对吗?基本上,一旦安装,这个类(作业)就可以运行了。它将根据cronExpression上的设置被触发

以下是我为测试您的场景所采取的步骤:

1) 创建grails应用程序:

grails创建应用程序testquartz

2) 安装插件:

grails安装插件石英

3) 创建新作业:

grails创建我的作业

4) 编辑MyJob类:

class MyJob  {
  static triggers = {
    cron name: 'myTrigger', cronExpression: "* * * * * ?"
  }
 def group = "MyGroup"

 def execute(){
   print "Job run!"
 }
}
5) 运行应用程序:

grails run应用程序


=>由于cronExpression每秒都会触发文本“Job run”,因此每秒都会打印文本“Job run”。在execute()中,您可以放置希望由cron作业执行的代码。我建议创建一个服务,将要运行的代码放在服务中,并在execute()方法中调用它。

我认为您需要添加更多的细节(比如您使用的grails版本)。我最近安装并使用了这个插件,它运行得非常完美。你在哪里有MyJob课程?这应该使用>grails create job MyJob创建,很抱歉我帮不了什么忙。感谢您回复@ibaraf。我使用了下面的命令。grails创建作业MyJob,但在grails安装插件quartz命令发出之前。我使用的是Grails1.3.7,MyJob位于grails app/jobs/val/这很有趣。我本来打算写你今天写的东西,但你比我写得快。我创建了一个新项目并安装了quartz,它运行得很好,但是我的主项目不是这样。我的朋友,“grails clean”命令完成了这个任务,但我现在无法卸载quartz:)因为你的答案是正确的,我投赞成票。再次感谢你。