Как вы читаете ресурс из корня взорвавшегося веб-приложения?

У меня есть локальная установка JBoss 6 с JBoss Tools и Eclipse, которые выполняют горячее развертывание взорванного веб-приложения. Я использовал для запуска своего веб-приложения через оболочку, используя основной класс с явным путем к классу и через файл JAR/WAR. Мой загрузчик ресурсов раньше работал отлично, но теперь, когда веб-приложение находится на JBoss в разобранной структуре каталогов с "неизвестным" путем к классу, ресурсы текстового файла, такие как "/db/jpql/whwhat.jpql", не найдены (возвращается ноль), приводя к NPE).

Вопрос в том:

Как вы загружаете ресурсы из корня (или вне каталога WEB-INF) взорванного веб-приложения (в JBoss)? Я проверил путь к классам, который является ничем иным, как C:\dev\jboss\bin\run.jar...

1 ответ

Решение

Я "забыл" префикс моих строк ресурсов с косой чертой. Не может работать надежно.

Я использовал

public static String readResource(String sResource)
{
    String sContent = "";

    InputStream is = null;
    BufferedReader br = null;

    try
    {
        is = TextFileLoader.class.getResourceAsStream(sResource);

        // resource not found, check web environment
        if ( is == null )
        {
            is = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream(sResource);
        }

        is.available();

        br = new BufferedReader(new InputStreamReader(is));

        ...
    }

    ...
}

получить ресурс webapp, если загрузчик классов текущих классов возвратил нуль.

Другие вопросы по тегам