java - 从 WAR 文件中打包的类路径加载 PNG 文件

标签 java spring maven spring-boot jhipster

我正在尝试加载打包在我的 war 文件中的 PNG 文件,以便我可以将其内联到电子邮件中,但在我的一生中,我似乎无法获得正确的路径来获取我的输入流。我在实例化时收到“InputStream 不得为空”错误。

项目结构:

src
|
---main
   |
   ---java
   |   |
   |   ---com.company.team.app_name
   |      |
   |      ---service
   |         |
   |         mailservice.java
   |
   ---resources
      |
      ---content
         |
         ---images
            |
            ---logo.png

war 文件中的路径:

WEB-INF/classes/com/company/team/app_name/service/MailService.class
...
content/images/logo.png

邮件服务代码(在类构造函数中):

this.logoBytes = new InputStreamResource(this.getClass()
                                         .getClassLoader()
                                         .getResourceAsStream("/content/images/logo.png"));

最佳答案

使用org.springframework.util.ResourceUtils中的ResourceUtils

try {
        File file = ResourceUtils.getFile("classpath:content/images/logo.png")
        byte[] logoBytes = Files.readAllBytes(file.toPath());
    } catch (IOException e) {
        e.printStackTrace();
    }

关于java - 从 WAR 文件中打包的类路径加载 PNG 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55153243/

相关文章:

Java 最佳实践 - 需要不断写入文件 - BufferedWriter?

java - 我可以合理地访问扩展类的变量吗?

java - 如何在属性文件的数值中包含 _?

java - Spring 启动 jetty 错误

java - Spring基于Java的Config项目显示404

java - Java 11 中的 JFoenix

eclipse - Mavenizing Ivy 管理现有项目依赖关系的最佳方式是什么

java - 使用自定义 ViewHandler 处理登录页面上的 ViewExpiredException

maven - 在 Maven 中使用 Gradle annotationProcessor 依赖范围?

java - Android Studio Animation 类 hasStarted 方法无法正常工作