问题背景
新接手一个springboot项目,业务模块儿比较多,放在tomcat中运行.更新迭代时进行增量更新.为了便于以后单独功能抽离,单独部署.决定新功能写在一个新的资源文件夹下,整个资源文件夹打jar包,放到lib文件夹下运行.之前spring项目就是这么做的,没有问题.这次在idea上运行没有问题.当打包放到测试服务器上时,报错404了.
解决思路
- 判断是不是controller没有找到,在controller中加入日志看是否有输出.发现日志有输出没有问题.
- 判断是否模板文件没找到报的错.将模板文件单独放到class下,重启项目,正常显示.
- 问题确定:jar包中的资源文件没有被模板引擎发现.
解决问题
去官网查看有无相关配置
有几种资源加载器,查看本项目配置情况使用的是WebAppResourceLoader,
通过描述发现问题.
此时使用ClasspathResourceLoader,问题解决
后记
jar包的文件要通过ClassPathResource.getInputStream来获取,
ResourceUtils.getFile("classpath:templates/xxx.html)是获取不到的.