Вам нужно использовать ServletContext#getResource()
или, что лучше, getResourceAsStream()
для этого.Возвращает URL
соответственно InputStream
ресурса в веб-контенте.
InputStream input = getServletContext().getResourceAsStream("/images/logo.PNG");
// ...
Таким образом, вы не зависите от того, где (и как!) веб-приложение было развернуто.Использование абсолютных путей к файловой системе диска может привести к головной боли переносимости.
См. Также:
Обновление : согласно комментариям, вы, кажется, используете iText (вы должны были пояснить, что немного больше в вопросе, я его редактировал).Затем вы можете использовать метод Image#getInstance()
, который принимает URL
:
URL url = getServletContext().getResource("/images/logo.PNG");
Image image = Image.getInstance(url);
// ...
Обновление 2 : согласно комментариям, вы, оказывается, сидите вJSF-контекст (вы должны были это уточнить и в вопросе).Вы должны использовать ExternalContext#getResource()
вместо этого, чтобы получить URL
:
URL url = FacesContext.getCurrentInstance().getExternalContext().getResource("/images/logo.PNG");
Image image = Image.getInstance(url);
// ...