我在grails中使用服務並從控制器中的服務獲取和設置數據,這沒有任何問題。我知道如何使用它......但是這個問題我無法解決,請幫助我,如果你知道發生了什麼問題。無法從Grails中的Quartz Job訪問任何bean
有一個QuartzJob,我從控制器的服務計劃...數據存儲在PostgreSQL中。使用所有插件和2.3.3 Grails的最新版本。在下面的代碼中,我只是想打印暱稱,但我無法獲得服務。試圖獲得bean,def grailsApplication但沒有成功。石英晶
Grails的插件是石英: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()Error |在 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(Unknown Source)Error | at test.TestJob.execute(TestJob.groovy)Error |在 org.quartz.core.JobRunShell.run(JobRunShell.java:207)Error |在 org.quartz.simpl.SimpleThreadPool $ WorkerThread.run(SimpleThreadPool.java:560) 空
DRY是Grails的魔法......我認爲有一些簡單的方法可以解決這個問題。我看到的所有例子,使用服務沒有任何問題。 – user3213516
http://stackoverflow.com/questions/10640480/grails-2-x-service-injection-in-groovy-src這是如何得到DI。但我認爲還有其他解決方案。 – user3213516