我创建了一个服务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/