Ich habe eine Webanwendung, die ich brauche, um eine Freemarker Vorlage manuell zu erhalten - die Vorlage wird über eine Klasse in einem Bibliotheksprojekt erhalten, aber die tatsächliche tpl Datei ist im Klassenpfad der Webanwendung enthalten. Also gibt es 2 Projekte, ein "taac-backend-api" und ein "taac-web"; Taac-Backend-API hat den Code, um die Vorlage zu greifen und zu verarbeiten, aber Taac-Web ist, wo die Vorlage speichert (speziell in: WEB-INF/Klassen/E-Mail/Vendor.tpl) - Ich habe alles aus der Verwendung versucht Springt die Klassenpfad-Ressource zur Verwendung der Freemarkers setClassForTemplateLoading-Methode. Ich nehme an, das würde funktionieren:Freimarkervorlage aus Klassenpfad setzen
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("/email/vendor.tpl");
noch bekomme ich immer eine FileNotFoundException. Kann jemand den besten Weg erklären, eine Vorlage vom Klassenpfad zu erhalten?
Danke.
Abhängig von der Klassenladerhierarchie muss manchmal sorgfältig geprüft werden, welche Klasse Sie für "ClassTemplateLoader" angeben. Oft ist es am besten, den 'ClassTemplateLoader' -Konstruktor zu verwenden, der einen' ClassLoader' direkt (statt einer 'Class' - seit 2.3.22) verwendet und dann den Threadkontextklassenlader der Webanwendung übergibt. – ddekany