アプリケーションでQuartzスケジューリングを使用して、自己監査メールを生成および送信するジョブをスケジュールしています。
GroovyPagesTemplateEngineを使用して、電子メールテンプレートから処理されたemailBodyを生成しようとしています。処理でQuartzスケジューリングが使用されていない場合、emailTemplateはEmailBodyに適切に処理されます。ただし、Quartzを使用してemailtemplateを処理するジョブを実行すると、
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が関連付けられていないことを認識しています。これが原因でメール処理が失敗していると思います。UIからアプリケーションにログインするのではなく、スケジュールされたジョブの実行時にemailtemplateを処理してemailBodyコンテンツを生成するにはどうすればよいですか。
前もって感謝します。