springBoot与freemarker整合后,项目打成Jar包后Freemarker找不到模板的问题

  1. 问题介绍

springBoot与freemarker整合后,本地测试没有问题,提交到服务器上时。报错获取不到resource/templates的模板:

020-07-01 10:52:38 freemarker.template.TemplateNotFoundException: Template not found for name “basicProcessTemplate.ftl”.
2020-07-01 10:52:38 The name was interpreted by this TemplateLoader: StringTemplateLoader(Map { “9bd91fc6-48a5-49e9-9f02-9c8349024db9”=…, “c069deb8-2a86-4868-97e2-c466d7b61a77”=…, “ef2efcfb-3360-41ac-9bd1-c75caf06ca31”=…, “6eb34ad9-93f8-444d-b8e3-98690fc55542”=…, “9934f769-c111-48d0-a461-8dcd9e239750”=…, “89ea653f-923f-4fc1-941b-cd7ce9bc3ec7”=…, “3e4ee26a-21b2-4964-974f-998d877e7b5d”=…, “285cd660-6e8b-4215-be62-7d903e35bd33”=…, “264a891a-8d25-47f9-b2b6-f6cc0a00485a”=…, “39133a7f-b5ab-4458-83d7-cc24d4ed0592”=…, … }).
2020-07-01 10:52:38 at freemarker.template.Configuration.getTemplate(Configuration.java:2797)
2020-07-01 10:52:38 at freemarker.template.Configuration.getTemplate(Configuration.java:2599)
2020-07-01 10:52:38 at com.cnpc.cmp.basic.service.ProcessService.createBasicProcessContentTemplate(ProcessService.java:481)
2020-07-01 10:52:38 at com.cnpc.cmp.basic.service.ProcessService F a s t C l a s s B y S p r i n g C G L I B FastClassBySpringCGLIB FastClassBySpringCGLIB917c34ca.invoke()
2020-07-01 10:52:38 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)

获取模板代码:

        //template = configuration.getTemplate("basicProcessTemplate.ftl");

修改为
//设置模板路径

    String classpath = this.getClass().getResource("/").getPath();
    configuration.setDirectoryForTemplateLoading(new File(classpath + "/templates"));

还是报错。
然后网上查了下,找到了原因:
打成jar后freemarker无法使用类加载器获取jar包中的resourse目录下的templates文件
解决办法:注入FreeMarkerConfigurer配置类,因为freemarker模板的默认目录就在resourse下的templates目录下,
使用freeMarkerConfigurer.getConfiguration().getTemplate(“mailTemplate.ftl”)可直接获取到对应的模板文件

修改成下边这样就可以了

  @Autowired
  FreeMarkerConfigurer freeMarkerConfigurer;
  。。。。
  Template template = freeMarkerConfigurer.getConfiguration().getTemplate("mailTemplate.ftl");
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值