我正在创建一个小型web应用程序,它将生成和生成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应用程序中检索静态文件,当我运行它时,无论如何…我可以加载并读取那个文件
我做错了什么?
问好FileInputStream
从文件系统中的文件读取输入字节—它不允许您访问包含在压缩JAR中的文件。相反,您可以这样做:
getClass().getResourceAsStream("/Invoice.jrxml");
如果您的文件包含在src/main/resources
中,这应该可以工作。