Не могу получить доступ ни к одному Бобу из задания кварца в Граалях


Я использую сервисы в 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 2

1 ответ:

Вы реализуете Job, но это редко происходит при использовании плагина. Обычно вы просто создаете класс в grails-app/jobs (вручную или с помощью скрипта create-job) с именем, которое заканчивается на "Job", и происходит волшебство. Вы создаете классы в src/groovy? Вам нужно использовать соглашения плагина, чтобы заставить инъекцию зависимостей работать.