Ho un'applicazione Web che è necessario ottenere manualmente un modello di Freemarker: il modello viene ottenuto tramite una classe in un progetto di libreria, ma il file tpl effettivo è contenuto nel classpath dell'applicazione Web. Quindi, ci sono 2 progetti, uno 'taac-backend-api' e un altro 'taac-web'; taac-backend-api ha il codice per prendere il template e processarlo, ma taac-web è dove il template è memorizzato (in particolare in: WEB-INF/classes/email/vendor.tpl) - Ho provato tutto dall'uso molla la risorsa classpath nell'utilizzo del metodo Freemarkers setClassForTemplateLoading. Presumo che ciò potrebbe funzionare:Impostazione del modello di venditore da classpath
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("/email/vendor.tpl");
ancora, ottengo sempre un FileNotFoundException. Qualcuno può spiegare il modo migliore per ottenere un modello dal classpath?
Grazie.
A seconda della gerarchia del programma di caricamento classe, a volte è necessario considerare attentamente la classe specificata per "ClassTemplateLoader". Spesso la cosa migliore è usare il costruttore 'ClassTemplateLoader' che prende direttamente un' ClassLoader' (invece di un 'Class' - dal 2.3.22), e poi passa nel caricatore di classi del contesto del thread dell'applicazione web. – ddekany