我有一项服务(Spring Boot)。我的功能之一是读取docx文件,替换一些文本并保存在客户端计算机上。
我有一个skom.docx文件,可以在本地毫无问题地找到该文件:
@Getter
public enum ReportTemplatesEnum {
KANC("src/main/resources/templates/skom.docx");
private final String path;
}
(...)
File file = new File(reportData.getReportType().getPath()); --> the path from Enum
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
XWPFDocument doc = new XWPFDocument(fis);
(...)
但是当我将服务部署到服务器(包含在Docker中)时,出现错误: 请求:/ odo / incident / generateOneReport / 255 methodGET
java.io.FileNotFoundException:/src/main/resources/templates/skom.docx (没有这样的文件或目录)
如何准备文件的路径? 在本地完美运行。
更新-解决方案
Resource resource = new ClassPathResource(reportData.getReportType().getPath());
InputStream dbAsStream = resource.getInputStream();
XWPFDocument doc = new XWPFDocument(dbAsStream);