【发布时间】:2012-04-09 07:46:47
【问题描述】:
我们在应用程序中使用 Quartz 调度来调度作业以生成和发送自审核电子邮件。
我正在尝试使用 GroovyPagesTemplateEngine 从电子邮件模板生成处理后的 emailBody。
当处理不使用 Quartz 调度时,emailTemplate 被正确处理成 EmailBody。但是,当使用 Quartz 运行作业以处理电子邮件模板时,
groovyPagesTemplateEngine is failing in quartz job with error
[12:10:55 AM] Mandar: java.lang.IllegalStateException: TemplateEngine not initialised correctly, no [resourceLoader] specified!
这就是我想做的事情
def getInfo(){
MockHttpServletRequest servletRequest = new MockHttpServletRequest()
GrailsWebRequest grailsWebRequest = new GrailsWebRequest(servletRequest, new MockHttpServletResponse(), new MockServletContext())
grailsWebRequest.setAttribute(GrailsApplicationAttributes.WEB_REQUEST, grailsWebRequest, 0)
RequestContextHolder.requestAttributes = grailsWebRequest
GroovyPagesTemplateEngine engine = new GroovyPagesTemplateEngine()
StringWriter sw = new StringWriter()
PrintWriter pw = new PrintWriter(sw)
engine.createTemplate('myteplate').make(model).writeTo(pw)
println sw.toString()
return sw.toString()
}
我知道 Quartz 调度程序没有与之关联的 WebRequest。我认为电子邮件处理因此而失败。 如何在计划作业运行时处理电子邮件模板以生成 emailBody 内容,而不是从 UI 登录到应用程序。
提前致谢。
【问题讨论】:
标签: exception grails groovy quartz-scheduler template-engine