Tengo una aplicación web que necesito obtener manualmente una plantilla de Freemarker: la plantilla se obtiene a través de una clase en un proyecto de biblioteca, pero el archivo tpl real está contenido en la ruta de clases de la aplicación web. Entonces, hay 2 proyectos, uno 'taac-backend-api' y otro 'taac-web'; taac-backend-api tiene el código para tomar la plantilla y procesarla, pero taac-web es donde se almacena la plantilla (específicamente en: WEB-INF/classes/email/vendor.tpl) - He intentado todo desde el uso springs recurso de classpath para utilizar Freemarkers setClassForTemplateLoading método. Supongo que esto funcionaría:Configuración de la plantilla freemarker de classpath
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("/email/vendor.tpl");
todavía, siempre obtengo una excepción FileNotFoundException. ¿Alguien puede explicar la mejor manera de obtener una plantilla del classpath?
Gracias.
Dependiendo de la jerarquía del cargador de clases, a veces se debe considerar cuidadosamente qué clase se especifica para 'ClassTemplateLoader'. A menudo, lo mejor es utilizar el constructor 'ClassTemplateLoader' que toma' ClassLoader' directamente (en lugar de 'Class' - desde 2.3.22), y luego pasa el cargador de clases de contexto de subprocesos de la aplicación web. – ddekany