Search code examples
javaeclipsevaadinvaadin7

How to get URL of Vaadin resources path?


I use Eclipse + Vaadin framework.

At first I save my image into the WEB-INF folder. Then I load this image into the FileResource variable, create Image variable and then add Image variable into Layout.

The page URL to the image resource looks like: http://servername/sitename/APP/connector/0/16/source/qwerty1.png

How to get URL in that format for use image externally?

Variable basepath returned local path: "..../WEB-INF/qwerty1.png"

String str = (String) VaadinService.getCurrent().getBaseDirectory().
                       getAbsolutePath() +"/WEB-INF/qwerty1.png";

File temp = new File(str);
FileOutputStream fos = new FileOutputStream(temp);
fos.write(os.toByteArray());
fos.flush();
fos.close();

String basepath = VaadinService.getCurrent().getBaseDirectory().
                   getAbsolutePath() +"/WEB-INF/qwerty1.png";
FileResource resource = new FileResource(new File(basepath));
Image image2 = new Image("Image from file", resource);
addComponent(image2);

Solution

  • If you put the file in ...src/main/webapp/VAADIN/image.png, it should be available using for example localhost:8080/VAADIN/image.png.