Modèle Freemarker Non trouvé Exception

Je reçois l'exception de fichier non trouvé pour mon fichier de modèle Freemarker dans Java. J'ai cherché tous les liens comme Modèle aléatoire non trouvé avec Freemarker et ​​Modèle Freemarker non trouvé , mais rien n'a aidé.

J'utilise le fichier ftl pour la conception de courrier électronique et ceci est mon code pour inclure ce modèle

 Configuration cfg = new Configuration();
            cfg.setClassForTemplateLoading(GenerateEmail.class, "");
            Template template = cfg.getTemplate("email.ftl");

My email.ftl file is located in src/main/java folder

quelqu'un peut-il m'aider dans cette

0
le fichier ne se trouve pas sur le chemin de classe à cet emplacement ou il n'est pas ajouté à votre archive lorsque vous le créez. C'est l'essentiel des deux questions que vous mentionnez, elles sont exactement la même solution de problème. C'est un problème simple et il y a beaucoup de réponses à propos de la localisation d'un fichier sur le classpath, si le fichier se trouve correctement sur le classpath.
ajouté l'auteur feeling unwelcome, source
Il n'y a pas de réponse alimentée par une cuillère, vous devez déterminer si le fichier se trouve sur le classpath vous-même, nous n'avons pas accès à votre environnement. Cela n'a en fait rien à voir avec freemarker, c'est une localisation d'une ressource sur le problème du chemin de classe . Le dossier src/main/java implique que vous utilisez maven, votre fichier devrait plutôt être dans src/main/resources . L'information dont vous avez besoin est dans le lien vers le duplicata.
ajouté l'auteur feeling unwelcome, source
donc ils déploient une application qui a un répertoire relatif à src/main/java ? ce n'est pas ce qu'ils impliquent, l'appel de méthode qu'ils utilisent et le chemin implique la racine de classpath , s'ils veulent regarder dans le système de fichiers, ils devraient utiliser la méthode correcte qui regarde le système de fichiers. Si leur intention est différente de ce qu'ils ont dit, ils ont besoin de clarifier leur question avec plus d'attention aux détails et la question sera rouverte si l'intention change. Voilà comment le système est conçu pour fonctionner.
ajouté l'auteur feeling unwelcome, source
Mais je n'ai pas eu ma réponse là c'est pourquoi l'a posté
ajouté l'auteur kirti, source
Le problème est que vous utilisez "" comme deuxième argument de setClassForTemplateLoading au lieu de "/" . "" est un chemin relatif, ainsi FreeMarker recherche le template dans le paquetage de la classe GenerateEmail . Notez que cela est documenté dans JavaDoc. (Je ne peux pas envoyer ceci comme réponse car la question a été marquée comme doublon.)
ajouté l'auteur ddekany, source
@jarrod Il s'agit d'un fichier modèle que l'utilisateur ne souhaite pas rechercher sur le chemin de classe. Il peut être nécessaire de le modifier sans avoir à redéployer l'application. Je suis d'accord que le marquage en double devrait être révoqué.
ajouté l'auteur Phil Anderson, source

1 Réponses

Essayez de placer vos fichiers ftl dans "WEB-INF/email/email.ftl" puis accédez-y en utilisant cfg.getTemplate ("/ email/email.ftl") .

Update: See if this link helps: http://www.vogella.com/tutorials/FreeMarker/article.html

Bonne chance!

0
ajouté
ok je vais essayer ça
ajouté l'auteur kirti, source
ne fonctionne pas pour moi :(
ajouté l'auteur kirti, source
Non, je n'utilise pas le printemps
ajouté l'auteur kirti, source
utilisez-vous le printemps? Si oui l'avez-vous configuré?
ajouté l'auteur ASP, source