- Вариант 1: Вы могли бы попытаться развернуть отдельный разобранном .war файл, и использовать его для статического контента
В вашем случае: В .../jboss-7/standalone/deployments/
должно быть static.war/
.
Так что закачки идут в этот каталог, и содержимое возвращается в обычном порядке.
Что касается подробностей, см Is it possible to deploy an exploded war file (unzipped war) in JBoss AS 7
Как отметил BalusC: Вы не должны перераспределять/удалить этот каталог, как только данные были загружены. У вас должна быть регулярная резервная копия этого каталога.
Насколько я знаю, это единственная возможность сделать это только по конфигурации/настройке.
- Вариант 2: Создать отдельный веб-приложение с именем
static.war
. Добавить сервлет поток статический контент
Таким образом, нет необходимости загружать/сохранять файлы в файловой системе ниже ../deployments/
, это может быть любой каталог, но вам нужен дополнительный сервлет, так что решаются программно.
Простой потокового сервлет может выглядеть следующим образом (только не потоковое - никакой аутентификации и т.д.):
public class DownloadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
final File dir = new File("/var/cms/storage/");
final String start = "/static/";
final String relativePath = request.getRequestURI().substring(
request.getRequestURI().indexOf(start) + start.length());
final File file = new File(dir, relativePath);
final String ct = URLConnection.guessContentTypeFromName(file.getName());
response.setContentType(ct);
final InputStream is =
new BufferedInputStream(new FileInputStream(file));
try {
final boolean closeOs = true;
org.apache.commons.fileupload.util.Streams.copy
(is, response.getOutputStream(), closeOs);
} finally {
is.close();
}
}
Карта все адреса в этом сервлета:
<servlet-mapping>
<servlet-name>DownloadServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Название static.war
обеспечивает /static/
Интернет контекст, чтобы он был совместим с URL-адресами вашего кода.
JBoss не поддерживает ничего подобного. – BalusC