У меня есть некоторые проблемы с загрузкой файла изображения в приложении на основе openhift. Я загружаю изображение с помощью этого кода:
private Image rankImage = new Image();
FileResource resource = new FileResource(new File(VaadinService
.getCurrent().getBaseDirectory().getAbsolutePath()
+ String.format("/WEB-INF/images/level%d.png", user.getRank().getLevel())));
rankImage.setSource(resource);
И он работает на моем локальном сервере. В браузере это изображение похоже на:
src="http://localhost:8080/ROOT/APP/connector/1/47/source/level1.png"
Но в приложении openshif это не сработало и выглядело так:
src="http://<my-app-name>/APP/connector/0/17/source/level1.png"
Изображения, хранящиеся в /WEB-INF/images/image-name.png Как я могу это исправить?
Я решил эту проблему. Решение:
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="...">
...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<!-- ADD THIS -->
<resource>
<directory>src/main/webapp/WEB-INF</directory>
</resource>
</resources>
...
</build>
</project>
java.class
private Image rankImage = new Image();
rankImage.setSource(new ClassResource(String.format("/images/level%d.png", 1)));
Изображения, хранящиеся в:
WEB-INF
|_images
|_level1.png
|_level2.png
|_level3.png