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

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

Вопрос:

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

1 Ответ

0 голосов
/ 15 марта 2011

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

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

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, если загрузчик классов текущих классов возвратил ноль.

...