您的位置:首页 > 财经 > 产业 > 公司门户最新版下载_中国建筑集团有限公司排名_排名优化公司电话_什么是营销渠道

公司门户最新版下载_中国建筑集团有限公司排名_排名优化公司电话_什么是营销渠道

2024/12/23 16:12:50 来源:https://blog.csdn.net/weixin_40501652/article/details/143718431  浏览:    关键词:公司门户最新版下载_中国建筑集团有限公司排名_排名优化公司电话_什么是营销渠道
公司门户最新版下载_中国建筑集团有限公司排名_排名优化公司电话_什么是营销渠道

需求:发送邮件,邮件内容通过Freemaker模板生成,如下代码:

Configuration configuration = new Configuration(Configuration.getVersion());
configuration.setDefaultEncoding("utf-8");
/** 加载模板目录 **/
//这个方法在IDEA跑是OK 的
File file = ResourceUtils.getFile("classpath:templates");//templates为模板目录
configuration.setDirectoryForTemplateLoading(file);
Template template = configuration.getTemplate("test.html");//test.html为要加载的模板

但部署到服务器,却提示:

java.io.FileNotFoundException:file:**.jar!/BOOT-INF/classes!/**.html 

来回找原因,可以看到文件路径出现了奇怪的感叹号!,这导致路径无法被正确匹配。

问题产生原因:当我们使用文件路径访问文件时,该路径下的文件必须是可访问的,而jar文件本质是上是一个压缩文件,需要解压才能访问,所以程序会直接报错。

解决办法:采用类路径加载模板目录的方式。 Freemarker提供了3种加载模板目录的方法详见:Freemarker加载模板目录的方法-CSDN博客

configuration.setClassForTemplateLoading(this.getClass(), "/templates");configuration.getTemplate("test.html"); //test.html为要装载的模板

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com