美文网首页
springboot项目打包后找不到Resource目录下静态文

springboot项目打包后找不到Resource目录下静态文

作者: 阿乐_822e | 来源:发表于2023-03-29 12:44 被阅读0次

来源:有一个应用,需从db中汇总数据,再填充到excel表中。因为表头比较复杂,所以采用了一个偷懒的办法:直接创建一个excel模板文件,设计好表头,再预留指定位置等待程序填充。应用在本地运行良好,但打包发布到K8S环境后却发现无法打开指定excel文件,直接生成了一个新的空白文件。
排故过程:经跟踪程序路径发现,运行时的路径为 file:/app.jar!/BOOT-INF/classes!/excel/xxx.xlsx
经百度了解,jar包 中的文件只能通过流的方式读取
修改代码如下:

# 原代码:
ExcelWriter writer = ExcelUtil.getWriter("excel/xxx.xlsx");
# 修改如下:
InputStream stream = getClass().getClassLoader().getResourceAsStream("excel/xxx.xlsx");  //打成jar后的静态文件要以流的形式访问
File excelFile = new File("xxx.xlsx");  
FileUtils.copyInputStreamToFile(stream,excelFile);
ExcelWriter writer = ExcelUtil.getWriter(excelFile);

相关文章

网友评论

      本文标题:springboot项目打包后找不到Resource目录下静态文

      本文链接:https://www.haomeiwen.com/subject/aadfddtx.html