Не могу прочитать файл свойств в JSP - PullRequest
3 голосов
/ 03 января 2012

В моем приложении работает следующий тест JUnit:

@Test
public void testMessageResources(){
    final InputStream stream = getClass().
        getResourceAsStream("/com/service/MessageResources.properties");
    Assert.assertNotNull(stream);
}

Но в моем JSP я не могу прочитать файл, используя этот код:

<%
    final InputStream resourceAsStream = application.
        getResourceAsStream("/com/service/MessageResources.properties");
%>

resourceAsStream всегда null. Я использую JSP 2.1.


Файл MessageResources.properties находится в пути к классам, но не внутри каталога JSP. Это проблема?

Ответы [ 2 ]

5 голосов
/ 03 января 2012

JSP использует ServletContext.getResourceAsStream () , что не делает то же самое, что Class.getResourceAsStream().Он не ищет ресурсы в пути к классам.Если вы хотите использовать Class.getResourceAsStream(), тогда используйте Class.getResourceAsStream().Это также будет работать в контексте Java EE.Просто убедитесь, что вы используете класс, загруженный из того же загрузчика классов, что и тот, который вы хотите использовать для загрузки файла свойств.

Такой вызов метода должен выполняться не в JSP, а в сервлете.или действие, которое перенаправляет в JSP.JSP должны использоваться для создания разметки.

1 голос
/ 03 января 2012

getClass (). GetResourceAsStream () ищет файл в classpath, а application.getResourceAsStream ищет ресурс в вашем веб-приложении напрямую.Таким образом, каталог 'com' должен находиться внутри вашего веб-приложения, а не в пути к классам.

...