Не могу получить доступ ни к одному Бобу из задания кварца в Граалях
Я использую сервисы в grails и получаю и устанавливаю данные от сервисов в контроллерах, и нет никаких проблем. Я знаю, как им пользоваться... Но эту проблему я не могу решить, пожалуйста, помогите мне, если вы знаете, что происходит не так.
Есть QuartzJob, я расписываю от службы от контроллера... Данные хранятся в PostgreSQL. Использование последней версии всех плагинов и Граалей 2.3.3. В коде ниже я просто хочу напечатать ник, но не могу получить сервис. Пытался получить бин, def grailsApplication, но без успеха.
Grails плагин для Quartz is 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.яз..NullPointerException: не удается вызвать метод getUserProfile () on null object Error / at орг..codehaus.отличный.во время выполнения.NullObject.invokeMethod (NullObject.Ява: 77) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.Погометаклассит.звоните (Погометаклассите.java: 45) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.Звоните в редакцию.defaultCall (CallSiteArray.java: 45) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.NullCallSite.вызов (NullCallSite.java: 32) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.Звоните в редакцию.defaultCall (CallSiteArray.java: 45) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.AbstractCallSite.вызов (AbstractCallSite.java: 108) Ошибка | в орг..codehaus.отличный.во время выполнения.место вызова.AbstractCallSite.вызов (AbstractCallSite.java: 116) Ошибка | при испытаниях.TestJob$$EOTRiFAo.выполнить (TestJob.заводной:27) ошибка | при испытаниях.TestJob$ $ DOTRiFAo.запустить(неизвестный источник) ошибка | в тест.Тестовая работа.выполнить (TestJob.groovy) ошибка / at орг..кварцевый.ядро.Джобруншелл.беги(JobRunShell.java: 207) Error / at орг..кварцевый.Симпл.SimpleThreadPool$WorkerThread.run (SimpleThreadPool.java: 560) null
1 ответ:
Вы реализуете
Job
, но это редко происходит при использовании плагина. Обычно вы просто создаете класс вgrails-app/jobs
(вручную или с помощью скриптаcreate-job
) с именем, которое заканчивается на "Job", и происходит волшебство. Вы создаете классы вsrc/groovy
? Вам нужно использовать соглашения плагина, чтобы заставить инъекцию зависимостей работать.