Как вы читаете ресурс из корня взорвавшегося веб-приложения?
У меня есть локальная установка 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, если загрузчик классов текущих классов возвратил нуль.