【问题标题】:Unable to read the resource file after deploying to Kubernetes部署到 Kubernetes 后无法读取资源文件
【发布时间】:2019-02-03 15:27:36
【问题描述】:
我在传统的 tomcat 服务器上运行本地代码,而在部署到 Kubernetes 时,我的读取资源文件代码不起作用。
我将nas.txt 放在资源文件夹中。
和
File file = ResourceUtils.getFile("classpath:nas.txt");
//Read File Content
String content = new String(Files.readAllBytes(file.toPath()));
return content;
这是给"Internal exception has occurred" 错误
【问题讨论】:
标签:
java
spring-boot
kubernetes
drone.io
【解决方案1】:
文件是否存在于tomcat-->webapps-->app°war-->容器内的资源
【解决方案2】:
ResourceUtils.getFile 不适用于打包的 jar。虽然它适用于 IDE。你可以试试下面的替代
protected InputStreamReader readStream(String filePath) throws FileNotFoundException {
InputStreamReader streamReader;
if (filePath.startsWith("classpath:")) {
streamReader = new InputStreamReader(getClass().getResourceAsStream(File.separator + filePath.split("classpath:/*")[1]));
} else {
streamReader = new FileReader(ResourceUtils.getFile(filePath));
}
return streamReader;
}