Распространенной проблемой при чтении файлов из classpath является правильное расположение в вашем файле WAR.
В Java сервлет MyServlet может ссылаться на файл, подобный этому
InputStream is=MyServlet.getClass().getResourceAsStream("/path/to/file/example.txt")
, который найдет файл, хранящийся в
WEB-INF/classes/path/to/file/example.txt
Обратите внимание на ведущий / который частоловит людей.
Контейнер приложения может читать из локальной файловой системы (например, если вы хотите получить внешние свойства и не хотите использовать JNDI).Для этого вы должны использовать обычный процесс доступа к файлу:
InputStream fis = FileInputStream(new File("/usr/share/myapp/another-example.txt"));
Конечно, если вы хотите указать DOM на него, MyServlet может содержать следующее:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
InputStream is = MyServlet.getClass().getResourceAsStream("/path/to/my/example.xml");
Document document = documentBuilder.parse(new InputSource(is));
// And start exploring the NodeList...
NodeList nodeList = document.getFirstChild().getChildNodes();
Это должносделать трюк.