grails - 依赖注入(inject)在使用邮件插件的 grails 作业中不起作用

标签 grails grails-orm grails-2.0

我创建了一个服务NotifierService使用 grails 邮件插件发送电子邮件。

class NotifierService {
    MailService mailService

    def sendWarningEmail(String name, String email, Date blockingDate) {
        try {
            mailService.sendMail {
                to email
                from "noreply-myApp@domain.com"
                subject "Status message: Warning"
                body (view:"/email/warningEmail", model:[
                                                    name:name, 
                                                    blockingDate:blockingDate
                                                    ])
            }
        } catch (Exception e) {
            e.printStackTrace()
        }
    }
}

我创建了另一个服务 ApplicationUtilService我正在尝试使用 NotifierService .
class ApplicationUtilService{
    def notifierService

    def notifyUser(){
        notifierService.sendWarningEmail("User name", "user@domain.com", new Date())
    }
}

我想调用notifyUser()在 grails 工作中 UpdateJob
class UpdateJob{
    def applicationUtilService

    static triggers = {
        // Scehduling parameters
    }

    def execute(){
        applicationUtilityService.notifyUser()
    }
}

我收到以下错误
Error 2014-12-05 12:04:53,550 [quartzScheduler_Worker-1] ERROR listeners.ExceptionPrinterJobListener  - Exception occurred in job: Grails Job
Message: java.lang.NullPointerException: Cannot invoke method notifyUser() on null object
   Line | Method
->> 111 | execute in grails.plugins.quartz.GrailsJobFactory$GrailsJob
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   202 | run     in org.quartz.core.JobRunShell
^   573 | run . . in org.quartz.simpl.SimpleThreadPool$WorkerThread ...`

当我实例化为
ApplicationUtilService applicationUtilService = new ApplicationUtilService()
而不是使用 grails 依赖注入(inject)。同样,notifierService 也有同样的问题。在 ApplicationUtilService并通过与上述相同的实例化来修复。

现在,真正的问题在于 mailService .上面的实例化不起作用。我该如何解决

最佳答案

Null 指针发生在 UpdateJob.applicationUtilService 上,因此似乎 applicationUtilService 没有正确注入(inject)到 UpdateJob 中。 UpdateJob 是否在正确的包中?

关于grails - 依赖注入(inject)在使用邮件插件的 grails 作业中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27315065/

相关文章:

testing - Grails 测试 JMS 消息传递

grails - SpringSecurityService:注销其他用户?

hibernate - 使用 Grails 和 GORM 在 PostgreSQL 中存储日期、时间和时区

Grails Gorm : Object references an unsaved transient instance

grails - 在 Grails 中,如何将我的数据库用户名和密码放在外部属性文件中?

grails - Grails:扩展和嵌入域类有什么区别?

spring - Grails + RESTful URL映射+过滤器+路由

grails - 在 Controller 中使用快捷方式重定向

grails - 如何在Grails上从Withings api获取用户信息

jquery - JQuery在生产环境中不起作用