java - 想在 SpringBoot 中获取静态资源文件,部署为 .jar?
问题描述
我正在创建一个小型网络应用程序,它将生成并生成一个 pdf 文件。该应用程序是使用 SpringBoot 2.5.4 创建的。
我的第一个意图是使用这一行来编译 jasper 报告
JasperReport compileReport = JasperCompileManager.compileReport(new FileInputStream("src/main/resources/Invoice.jrxml"));
在 IDE (STS 4.x) 中一切正常,但是当我“构建”并使用 java -jar 运行时,我得到了 FileNotFoundException。
然后我决定编译 .jrxml 并使用 .jasper 文件。而且我想将我的文件移动到 /resources/static/reports 文件夹,以允许包包含这些文件。
但是我又被卡住了,我想在 SpringBoot 应用程序中检索静态文件,当我运行它时,无论如何......我可以加载和读取该文件。
我做错了什么?
此致
解决方案
AFileInputStream
从文件系统中的文件中读取输入字节——它不会让您访问包含在压缩 JAR 中的文件。相反,您可以执行以下操作:
getClass().getResourceAsStream("/Invoice.jrxml");
如果您的文件包含在src/main/resources
.
推荐阅读
- python - 缓慢的 VCF 解析和插入数据库
- jquery - Hide element inside Iframe
- jquery - Make tablesorter post column name instead of column number
- r - simulate a possion process from another poisson process
- assembly - How to read string parameters from stack in nasm
- python - Tkinter - Adjusting widgets
- javascript - 使用 JQuery 自动创建多个滑块
- powershell - 您的令牌尚未被授予执行此查询所需的范围。'id' 字段需要以下范围之一:['read:packages'],
- c++ - Function pow doesn't show the right answer
- pandas - 在 DataFrame 'ValueError: Lengths must match to compare' 中选择两个日期之间的数据