java.security.AccessControlException: файл доступен через браузер, но не на том же сервере

Поэтому, чтобы не повторяться слишком много, обратитесь к serve static image наряду с java google-enpoint API.

Как вы можете видеть из указанной ссылки, я могу просматривать изображение через URL-адрес. Однако, когда я пытаюсь прочитать имена файлов, используя аналогичный код для

public void listFilesForFolder(final File folder) {
    for (final File fileEntry : folder.listFiles()) {
        if (fileEntry.isDirectory()) {
            listFilesForFolder(fileEntry);
        } else {
            System.out.println(fileEntry.getName());
        }
    }
}

final File folder = new File("/home/you/Desktop");
listFilesForFolder(folder);

Я получаю исключение безопасности

java.security.AccessControlException: access denied ("java.io.FilePermission" "/myImages" "read")

Кто-нибудь знает исправление? Почему вызов через браузер показывает изображение, а вызов изнутри самого сервера вызывает исключение? Я нахожу это странным.


person Pouton Gerald    schedule 13.05.2013    source источник


Ответы (2)


Если вы настроили файл как «статический» ресурс, он будет обслуживаться отдельным пулом серверов, оптимизированных для обслуживания статического содержимого. Следствием этого является то, что файл недоступен для открытия из вашего приложения. Файлы ресурсов доступны для открытия и чтения приложением.

Это задокументировано здесь.

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

person Dave W. Smith    schedule 13.05.2013
comment
На локальном хосте было легко найти путь к моим статическим файлам. Теперь, когда я развернулся, это не [email protected]/images/willsmith.jpg, как я ожидал. Есть идеи? - person Pouton Gerald; 13.05.2013

Если сервер работает как служба, убедитесь, что у этой службы есть права доступа к папке и файлам, которые вы пытаетесь прочитать.

person Striker    schedule 13.05.2013
comment
Я понятия не имею, что вы имеете в виду. Напомним: я могу получить доступ к файлу через браузер, но не с того же сервера, и все же рассматриваемая папка находится внутри каталога war. - person Pouton Gerald; 13.05.2013
comment
Какой URL-адрес вы используете для доступа к файлу в браузере? Кроме того, на какой ОС вы это используете и на каком сервере приложений? - person Striker; 13.05.2013