部署到 Kubernetes 后无法读取资源文件



我在传统的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"错误

该文件是否存在于tomcat中 - ->webapps -->app°war--容器内>资源

ResourceUtils.getFile不适用于

包装好的罐子。虽然它适用于 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;
}

假设你的文件在resources目录中

URL img1Url = org.apache.cxf.common.classloader.ClassLoaderUtils.getResource("/assets/bathroom.png", YourClass.class);

根据应用程序,使用 url 创建File对象或InputStreamReader

库导入:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-common-utilities</artifactId>
    <version>2.5.11</version>
</dependency>

上述部分也适用于 kubernetes 镜像和常规实例。

相关内容

  • 没有找到相关文章

最新更新