Java 找不到Freemarker模板异常
我在java中获得freemarker模板文件的“未找到文件”异常。 我搜索了所有像和这样的链接,但没有任何帮助 我使用ftl文件设计电子邮件,这是我的代码,包括该模板Java 找不到Freemarker模板异常,java,maven,classpath,freemarker,Java,Maven,Classpath,Freemarker,我在java中获得freemarker模板文件的“未找到文件”异常。 我搜索了所有像和这样的链接,但没有任何帮助 我使用ftl文件设计电子邮件,这是我的代码,包括该模板 Configuration cfg = new Configuration(); cfg.setClassForTemplateLoading(GenerateEmail.class, ""); Template template = cfg.getTemplate("email
Configuration cfg = new Configuration();
cfg.setClassForTemplateLoading(GenerateEmail.class, "");
Template template = cfg.getTemplate("email.ftl");
我的email.ftl
文件位于src/main/java文件夹中
有人能帮我吗?试着把你的
ftl
文件放在“WEB-INF/email/email.ftl”中,然后使用cfg.getTemplate(“/email/email.ftl”)
访问它
更新:查看此链接是否有帮助:
祝你好运 不为我工作:(您是否使用spring?如果是,您是否配置了它?不,我没有使用spring文件不在该位置的类路径上,或者在您构建它时它没有添加到您的存档中。这是您提到的两个问题的要点,它们是完全相同的问题解决方案。这是一个简单的问题,关于定位,有很多答案类路径上的一个文件,如果该文件实际上正确地位于类路径上。但是我没有在那里得到我的答案,这就是为什么发布它这里没有填鸭式的答案,你必须自己找出该文件是否确实位于类路径上。我们无法访问你的环境。这实际上与freemarker无关,这是一个查找资源的过程
src/main/java
文件夹意味着您正在使用maven,您的文件应该位于src/main/resources
中。您需要的信息位于副本的链接中。问题是您使用“
作为设置ClassforTemplateLoading
的第二个参数,而不是”/“
”
是一个相对路径,因此FreeMarker在GenerateEmail
类的包中查找模板。请注意,这在JavaDoc中有文档记录。(我无法将此作为答案发送,因为问题被标记为重复。)@jarrod这是一个模板文件,用户可能不想在类路径上查找它-它可能需要编辑而无需重新部署应用程序。我同意应该撤销重复标记。