2012-04-09 83 views
0

我们正在使用我们的应用程序石英调度安排作业生成和发送自我审核电子邮件。
我试图使用GroovyPagesTemplateEngine电子邮件模板生成处理emailBody。 所述的emailTemplate被适当加工成EmailBody当处理不使用石英调度。但是,当一个作业使用Quartz进行的emailTemplate运行处理groovyPagesTemplateEngine石英工作失败,错误

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应用程序运行,而不是。

在此先感谢。

回答

0

资源加载未在groovyPagesTemplateEngine初始化为你只是直接创建它的一个新的实例。相反,你应该让你Spring的依赖注入做的工作。

以下行添加到您的服务:

class YourService { 

    def groovyPagesTemplateEngine 

    def getInfo(){ 
     GroovyPagesTemplateEngine engine = groovyPagesTemplateEngine 
     //your code here 
    } 
}