Как обеспечить доступ к внешнему ресурсу (файл) для веб-приложения GlassFish?

Я - немного новичок GlassFish, поэтому простите мой ingnorance на предмете.

В основном мы служим игровому веб-сайту, и сделать клиент загружаемым нашим веб-приложением, мы копируем его в каталог в domain1. Проблема с этим состоит в том, что при повторном развертывании веб-приложения загружаемый клиент потерян, и мы должны скопировать его через снова.

Я хотел бы смочь сохранить клиент, загружаемый в некотором внешнем месте и сделать, чтобы GlassFish обеспечил доступ к нему.

Я мог просто hardcode ссылка в веб-приложение, но затем мы потеряем мобильность, таким образом, это будет причиной того, чтобы иметь GlassFish, обрабатывают его.

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

Третья опция, которую я нашел, состоит в том, чтобы добавить пользовательский ресурс, отображающийся от некоторого имени до расположения файла, и затем предоставить метод в одном из моих бобов для получения расположения файла. Это походит на большую работу только, чтобы иметь внешний ресурс, я чувствую, что должен быть более легкий путь.

Таким образом, что я должен сделать?

5
задан Peter Mortensen 21 July 2010 в 23:20
поделиться

2 ответа

С GlassFish вы можете определить альтернативный корень документа для обслуживания файлов извне. Из документации:

Альтернативный корень документа

Альтернативный корень документа (docroot) позволяет веб-приложению обслуживать запросы на определенные ресурсы из вне собственного docroot, на основе совпадают ли эти запросы с одним (или подробнее) шаблонов URI в Интернете альтернативные корневые каталоги приложения.

Чтобы указать альтернативный корневой каталог для веб-приложение или виртуальный сервер, используйте свойство alternatedocroot_n , где n - целое положительное число, позволяет указать более одного. Это свойство может быть подэлементом элемент sun-web-app в файл sun-web.xml или виртуальный сервер имущество. Для получения дополнительной информации о эти элементы см. sun-web-app в Сервер Oracle GlassFish 3.0.1 Руководство по развертыванию приложений .

Таким образом, вы можете настроить что-то вроде этого:

<property name="alternatedocroot_1" value="from=/ext/* dir=/path/to/ext"/>

См. Документацию для получения полной информации.

7
ответ дан 14 December 2019 в 04:29
поделиться

Ссылка на загружаемые файлы не обязательно должна быть в том же приложении, что и игровые сервлеты, верно?

Одним из решений может быть создание нового "псевдо" приложения, содержащего только web.xml и содержимое статических файлов. Вы, конечно, не будете развертывать его в war форме (ну, только если вы действительно этого хотите), а просто скопируете файлы в распакованный каталог, когда захотите изменить содержимое. Я использую подобную настройку для обслуживания кучи файлов с сервера веб-приложений, который я запускаю.

На работе, в "корпоративной" среде, мы действуем по-другому. У нас есть HTTPD-сервер Apache, работающий как front-end. Он направляет на сервер приложений те вещи, которые должны быть сделаны на Java, но любое статическое содержимое, а также управление cookie, SSL, балансировка нагрузки и другие "веб-серверные" вещи выполняются HTTPD. Это дает некоторое преимущество в производительности при работе с высоконагруженными сайтами и большим количеством больших, но статичных файлов. Это также позволяет нам разделить работу между различными физическими ящиками, что опять же может помочь в производительности.

1
ответ дан 14 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: