2013-02-08 7 views
0

Я работаю над апплетом, который считывает файлы данных из одной конкретной папки (позволяет называть ее «Папка данных»). Количество файлов и их имена могут меняться со временем, поэтому я не хочу их жестко добавлять в код. Я хотел бы иметь возможность перечислять все файлы, хранящиеся в этой папке (примечание: папка хранится на том же сервере, что и апплет). Я попытался сделать это с помощью метода Files.walkFileTree. Он работал очень хорошо, когда я запустил его в Eclipse, но я получил AccessControlException:Использование Files.walkFileTree в Applet

java.security.AccessControlException: access denied ("java.io.FilePermission" "Data folder" "read") 

, когда я попытался запустить в браузере.

Я могу понять, почему jvm хочет ограничить апплеты из списка файлов на локальном компьютере, но возможно ли перечислять файлы, хранящиеся на сервере?

ответ

2

Вы должны различать код на стороне клиента и сервера. Ваш апплет выполняется на стороне клиента, поэтому он не может напрямую обращаться к файловой системе сервера с помощью Files.walkFileTree(). Что вы можете сделать, это реализовать службу (например, службу REST или простой сервлет) и запустить ее на стороне сервера в контейнере сервлетов Tomcat или Jetty, а затем вызвать эту службу из вашего апплета. Но будьте осторожны, чтобы сделать ваше обслуживание безопасным, чтобы не позволяло erveryone видеть всю файловую систему вашего сервера.

+0

Спасибо, это имеет смысл :) Я подумывал о создании сервлета, чтобы добавить некоторые функции, теперь я вижу, что мне обязательно нужно это сделать. – Przemek

 Смежные вопросы

  • Нет связанных вопросов^_^