无法从Grails中的Quartz Job访问任何bean

时间:2014-01-20 02:12:48

标签: grails quartz-scheduler

我在grails中使用服务,从控制器中的服务获取和设置数据,没有问题。我知道如何使用它...但是这个问题我无法解决,如果你知道出了什么问题,请帮助我。

有一个QuartzJob,我从控制器的服务计划......数据存储在PostgreSQL中。使用所有插件的最新版本和2.3.3 Grails。在下面的代码中我只想打印昵称,但我无法获得服务。试图获得bean,def grailsApplication但没有成功。

Quartz的Grails插件是quartz:1.0-RC11

class TestJob implements Job{
    def userService

    void execute(org.quartz.JobExecutionContext t) {         
        try {
            println userService.getUserProfile("farko").username
        } catch (Exception ex){
            println ex.printStackTrace()
        }
    }
}

我收到此错误

  

错误| java.lang.NullPointerException:无法调用方法   null对象的getUserProfile()错误|在   org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77)   错误|在   org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45)   错误|在   org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)   错误|在   org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32)   错误|在   org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)   错误|在   org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)   错误|在   org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)   错误|在test.TestJob $$ EOTRiFAo.execute(TestJob.groovy:27)错误|     at test.TestJob $$ DOTRiFAo.execute(未知来源)错误|在   test.TestJob.execute(TestJob.groovy)错误|在   org.quartz.core.JobRunShell.run(JobRunShell.java:207)错误|在   org.quartz.simpl.SimpleThreadPool $ WorkerThread.run(SimpleThreadPool.java:560)   空

1 个答案:

答案 0 :(得分:3)

您实施Job,但这在使用插件时很少见。通常,您只需在grails-app/jobs中创建一个类(手动或使用create-job脚本),其名称以“作业”结尾,然后就会发生魔术。您是否在src/groovy中创建了课程?您需要使用插件的约定来使依赖注入工作。