Здесь я пытаюсь загрузить файл excel из папки ресурсов (src/main/resources) проекта maven.
Структура папок
MyWebApp
|______src/main/java
| |____Test.java
|
|______src/main/resources
| |______test
| |___hello.properties
| |___template.xlsx
|______target
|___MyWebApp
|____WEB_INF
|___classes
|__test
|__hello.properties
|__template.xlsx
Мой подход
//loading excel file
String resource = "/test/template.xlsx";
System.out.println(this.getClass().getResource(resource) == null); // prints true
//loading properties file
String resource = "/test/hello.properties";
System.out.println(this.getClass().getResource(resource) == null); //prints false
//I have also tried below methods
this.getClass().getClassLoader().getResourceAsStream(resource); //null
new ClassPathResource(resource).getInputStream(); //null
Погуглив, я узнал, что maven фильтрует двоичное содержимое< /а>. Чтобы преодолеть это, я изменил свой pom.xml
, чтобы расширения файлов .xlsx
,.xls
не фильтровались с помощью этого справка.
pom.xml
<configuration>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<includes>
<include>**/*.xlsx</include>
<include>**/*.xls</include>
</includes>
</resource>
</resources>
</configuration>
Я смог загрузить файл свойств, но не смог загрузить файл excel, используя описанный выше подход. Со своей стороны я сослался на две приведенные ниже ссылки (Rererence-1, Reference-2), но безуспешно. Пожалуйста, помогите мне, если у вас есть мысли/идеи по этому вопросу.