当前位置: 首页 > 知识库问答 >
问题:

Spring Boot资源getFile()不工作[重复]

邹宣
2023-03-14
Resource resource= resourceLoader.getResource("classpath:" + filepath);
File tempFile = resource.getFile();
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文件是否有更好的/替代的方法,这将是非常有帮助的。如有任何帮助,我将不胜感激

共有1个答案

南门承教
2023-03-14

从Spring资源JavaDoc

抛出:FileNotFoundException-如果资源不能解析为绝对文件路径,即如果资源在文件系统中不可用

因此,资源的实现似乎不支持getFile()的使用。通常,您希望使用isFile()检查资源是否可以通过getFile()解析。

 类似资料:
  • 我试图使用SpringMVC制作一个简单的JavaWeb应用程序。我试图在我的资源文件夹中添加CSS和JS文件,该文件夹分别位于。因此,我需要在我的l并在该文件中包含spring webmvc。我的如下所示: 下面给出了我的POM. xml: 一旦我使用Maven构建项目,并尝试使用Eclipse IDE上添加的Tomcat在服务器上运行它,我就会得到以下错误: 配置问题:找不到元素[resour

  • 导入资源 提供了三种 导入资源 的方式: 以新建文件的方式,通过 Cocos Creator 3D 窗口的 资源管理器 面板 创建按钮 导入资源 以复制文件的方式,在操作系统的文件管理器中,将资源文件复制到项目资源文件夹下,之后打开编辑器或激活编辑器窗口会自动刷新 资源管理器 的资源列表,完成导入资源。 以拖拽文件的方式,从操作系统的文件管理器中拖拽资源文件到 资源管理器 面板的某个文件夹位置,完

  • 我有一个Springboot应用程序,我的实体模型与作为依赖项包含的主应用程序分开。 我的Application.java位于此包中 我的实体模型位于这个包com.a.b中的另一个项目中 但是我得到一个错误:由:java.lang.IllegalArgumentException:不是托管类型:类引起

  • 22.7.3.一些 source set 的例子 加入含有类文件的 sorce set 的 JAR: 例22.8.为 source set 组装 JAR build.gradle task intTestJar(type: Jar) { from sourceSets.intTest.output } 为 source set 生成 javadoc: 例22.9.为 source set

  • 22.7.1.Source Set 属性 下表列出了 Source Set 的一些重要属性, 更多细节请查看 SourceSet 的 API 文档. 表22.9.java 插件- Source Set 属性 配置名称 类型 默认值 描述 name String (read-only) Not null 用来识别source set的名称 output SourceSetOutput(read-on

  • 添加资源 资源管理器 提供了三种在项目中添加资源的方式: 通过 创建按钮 添加资源 在操作系统的文件管理器中,将资源文件复制到项目资源文件夹下,之后再打开或激活 Cocos Creator 窗口,完成资源导入。 从操作系统的文件管理器中(比如 Windows 的文件资源管理器或 Mac 的 Finder),拖拽资源文件到 资源管理器 面板来导入资源 从外部导入资源 从操作系统中的其他窗口拖拽文件到