Exception groovyPagesTemplateEngine在quartz作业中失败,出现错误
我们在应用程序中使用Quartz调度来调度作业,以生成和发送自我审核电子邮件。Exception groovyPagesTemplateEngine在quartz作业中失败,出现错误,exception,grails,groovy,quartz-scheduler,template-engine,Exception,Grails,Groovy,Quartz Scheduler,Template Engine,我们在应用程序中使用Quartz调度来调度作业,以生成和发送自我审核电子邮件。 我正在尝试使用GroovyPagesTemplateEngine从电子邮件模板生成已处理的emailBody。 当处理不使用Quartz调度时,emailTemplate将正确处理到EmailBody中。但当使用Quartz运行作业以处理电子邮件模板时 groovyPagesTemplateEngine is failing in quartz job with error [12:10:55 AM] Mandar:
我正在尝试使用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。我认为电子邮件处理会因此而失败。
如何在运行计划作业时处理emailtemplate以生成emailBody内容,而不是通过从UI登录到应用程序
提前感谢。resourceLoader没有在groovyPagesTemplateEngine中初始化,因为您只是直接创建它的新实例。相反,您应该让Spring的依赖注入为您完成这项工作 将以下行添加到您的服务中:
class YourService {
def groovyPagesTemplateEngine
def getInfo(){
GroovyPagesTemplateEngine engine = groovyPagesTemplateEngine
//your code here
}
}
您可以尝试使用中提到的步骤 如果您使用的是Grails2.0.x,那么会得到一个名为GroovyPagerEnder的bean,它也可以在web请求的上下文之外使用。欲知详情,