Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到Freemarker模板异常_Java_Maven_Classpath_Freemarker - Fatal编程技术网

Java 找不到Freemarker模板异常

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

我在java中获得freemarker模板文件的“未找到文件”异常。 我搜索了所有像和这样的链接,但没有任何帮助

我使用ftl文件设计电子邮件,这是我的代码,包括该模板

 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这是一个模板文件,用户可能不想在类路径上查找它-它可能需要编辑而无需重新部署应用程序。我同意应该撤销重复标记。