2012-04-09 71 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 
    } 
}