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