Ссылка из приложения томката на ресурсы, находящиеся вне приложения

Материал из Course Orchestra
Перейти к: навигация, поиск
Showcase

Создание решений на КУРС:Showcase

Запрещается помещать любые ресурсы непосредственно в приложение (.war), т. к. при обновлении приложения они будут потеряны.

При помощи userdata

Необходимо поместить ресурс в каталог resources и он будет автоматически скопирован в папку внутри приложения

Особенности

  1. Входит в решение и при перемещении решения будет доступно
  2. Большие ресурсы могут долго копироваться при старте веб-приложения

При помощи ссылки, находящейся вне приложения

Необходимо создать пустое приложение и туда положить ресурсы. Чтобы папка приложения была за пределами webapps откройте файл контекста (conf/[enginename]/[hostname]/[имя приложения].xml) и добавьте атрибут docBase в тэг context. Должно получиться что-то вроде <Context docBase="c:/images"/>

Особенности

  1. Доступ к ресурсу не требует аутентификации
  2. Чтобы указать ссылку необходимо будет выходить на верхний уровень, например ../имя приложения/filename.zzz

При помощи ссылки, находящейся внутри приложения

Необходимо добавить папку с картинками в алиас. Для этого необходимо в context добавить атрибут aliases. Должно поулчиться что-то типа <Context aliases="/pathImage=c:\images, /pathThumbnail=c:\images\small"/>

Особенности

  1. Доступ к ресурсу требует аутентификации

Задание пути к папке пользовательских данных

Дополнительная возможность по заданию папки пользовательских данных (за пределами war-файла на сервере) осуществлена с помощью папки userdatas с файлом general.properties корневой папки сервера приложений. В этом файле прописывается полный путь к юзердате, которую планируется использовать.

Иерархия путей к юзердатам следующая. Сначала путь к юзердате ищется в файле Showcase.xml, лежащем по пути conf\Catalina\localhost. Если его там нет или он пустой, следующее место поиска - файл general.propeties папки userdatas (см. выше). Если и этот файл отсутсвует (или он пустой), то путь к юзердате ищется в war-файле, в файле по пути src\general.properties. Если же путь к юзердате найден, но он указывает на несуществующую юзердату, то будет выброшено исключение и загрузка Showcase будет прекращена.