Как получить доступ к локальным файлам на сервере в приложении JBoss? - PullRequest
2 голосов
/ 14 июля 2010

Я ищу доступ ко всем файлам в локальном каталоге в приложении JBoss. Я могу поместить каталог где угодно в моей войне, включая WEB-INF, если это необходимо. Затем я хочу получить доступ к каждому файлу в каталоге последовательно. В обычном приложении, если каталог находился в месте выполнения, я мог бы сделать что-то вроде:

File f = new File("myDir");
if(f.isDirectory && f.list().length != 0)
{
    for(String fileName : f.list())
    {
        //do Read-Only stuff with fileName
    }
}

Я ищу оптимальное решение, поэтому, если я поступаю неправильно, укажите, пожалуйста, правильный способ доступа к неизвестному набору ресурсов.

1 Ответ

2 голосов
/ 14 июля 2010

Первое, на что нужно обратить внимание: вы сможете заставить это работать, только если у вас есть взорванная WAR, или, возможно, если контейнер сервлетов взорвет WAR для вас.

Имея это в виду, выможет использовать ServletContext.getRealPath() в качестве отправной точки.Вам нужно знать имя хотя бы одного файла в корневом каталоге веб-приложения и перейти оттуда:

String knownFilePath = servletContext.getRealPath("knownFile");
File webAppRootDir = new File(knownFilePath).getParentFile();

// and then as per the question
File f = webAppRootDir ;
if(f.isDirectory && f.list().length != 0)
{
    for(String fileName : f.list())
    {
        //do Read-Only stuff with fileName
    }
}

Получение ServletContext оставлено в качестве упражнения для читателя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...