gpt4 book ai didi

java - Spring boot Resource getFile() 不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:09 24 4
gpt4 key购买 nike

在我的 Spring Boot 项目中,我尝试加载位于 resources 文件夹中的 xml 文件。如果我尝试使用

加载文件
Resource resource= resourceLoader.getResource("classpath:" + filepath);
File tempFile = resource.getFile();

我在 docker 容器中收到以下错误,因为该文件存在于 jar 文件中的 BOOT-INF\classes 文件夹中(打包类型为 jar)

Exception occur while generating mock sso response java.io.FileNotFoundException: class path resource [mock_sso_response.xml] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/polst-webapp-2.1.5-SNAPSHOT.jar!/BOOT-INF/classes!/mock_sso_response.xml

但是使用 getInputStream 是有效的。

Resource resource= resourceLoader.getResource("classpath:" + MOCK_SSO_RESPONSE_FILE);
InputStream inputStream = resource.getInputStream();

如果有人可以分享这背后的原因,以及是否有更好/替代的方法在 Spring Boot 中加载 xml 文件,那将会非常有帮助。任何帮助将不胜感激

最佳答案

来自 Spring Resource JavaDoc

Throws: FileNotFoundException - if the resource cannot be resolved as absolute file path, i.e. if the resource is not available in a file system

看来 Resource 的实现不支持 getFile() 的使用。通常您需要使用 isFile() 检查资源是否可以通过 getFile() 解析。

关于java - Spring boot Resource getFile() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60533945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com