Search code examples
javarestwarweb-inf

How do I specify relative file paths in restful web applications


Deployment of my restful application will be "exploded" from a single WAR file. All file paths will need to be relative and not absolute (Nesting from a single WEB-INF directory). What is the convention for specifying these files (such as .properties files .xml files etc)?

Example of wrongly specifying: file f = file(/usr/home/username/.../WEB-INF/file.something);

Example of what I'm trying to achieve: (From Controller/Servlet) file f = new file(file.something);


Solution

  • You should NEVER specify a file using /usr/home or any absolute path. The correct method is using ServletContext.getRealPath()

    context.getRealPath("/WEB-INF/file.something");
    

    There is also getResourceAsStream and getResource.