问题背景

新接手一个springboot项目,业务模块儿比较多,放在tomcat中运行.更新迭代时进行增量更新.为了便于以后单独功能抽离,单独部署.决定新功能写在一个新的资源文件夹下,整个资源文件夹打jar包,放到lib文件夹下运行.之前spring项目就是这么做的,没有问题.这次在idea上运行没有问题.当打包放到测试服务器上时,报错404了.

解决思路

  1. 判断是不是controller没有找到,在controller中加入日志看是否有输出.发现日志有输出没有问题.
  2. 判断是否模板文件没找到报的错.将模板文件单独放到class下,重启项目,正常显示.
  3. 问题确定:jar包中的资源文件没有被模板引擎发现.

解决问题

去官网查看有无相关配置
springboot+ibeetl项目无法找到jar包中的资源文件
有几种资源加载器,查看本项目配置情况
springboot+ibeetl项目无法找到jar包中的资源文件使用的是WebAppResourceLoader,
springboot+ibeetl项目无法找到jar包中的资源文件通过描述发现问题.
springboot+ibeetl项目无法找到jar包中的资源文件此时使用ClasspathResourceLoader,问题解决
springboot+ibeetl项目无法找到jar包中的资源文件

后记

jar包的文件要通过ClassPathResource.getInputStream来获取,
ResourceUtils.getFile("classpath:templates/xxx.html)是获取不到的.

相关文章: