J'ai une application Web dont j'ai besoin pour obtenir manuellement un modèle Freemarker - le modèle est obtenu via une classe dans un projet de bibliothèque, mais le fichier tpl réel est contenu dans le chemin d'accès aux classes. Donc, il y a 2 projets, un 'taac-backend-api' et un autre 'taac-web'; taac-backend-api a le code pour saisir le template, et le traiter, mais taac-web est l'endroit où le template est stocké (en particulier dans: WEB-INF/classes/email/vendor.tpl) - J'ai tout essayé en utilisant Ressource ressource classpath à l'aide de la méthode Freecenter setClassForTemplateLoading. Je suppose que cela fonctionnerait:Définition d'un modèle Freemarker à partir du classpath
freemarkerConfiguration = new Configuration();
freemarkerConfiguration.setClassForTemplateLoading(this.getClass(), "");
Template freemarkerTemplate = freemarkerConfiguration.getTemplate("/email/vendor.tpl");
pourtant, j'obtiens toujours une exception FileNotFoundException. Quelqu'un peut-il expliquer la meilleure façon d'obtenir un modèle du classpath?
Merci.
En fonction de la hiérarchie du chargeur de classes, il est parfois nécessaire d'examiner avec attention la classe que vous spécifiez pour 'ClassTemplateLoader'. Souvent, le mieux est d'utiliser le constructeur 'ClassTemplateLoader' qui prend un' ClassLoader' directement (au lieu d'un 'Class' - depuis 2.3.22), et de passer ensuite dans le chargeur de classe de contexte de thread de l'application web. – ddekany