Как я могу загрузить изображение из WEB-INF dir [Openshift: Vaadin]

1

У меня есть некоторые проблемы с загрузкой файла изображения в приложении на основе 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 Как я могу это исправить?

Теги:
tomcat
resources
openshift
vaadin

1 ответ

1
Лучший ответ

Я решил эту проблему. Решение:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню