Файлы Tomcat context.xml, есть ли тут привет? - PullRequest
5 голосов
/ 25 ноября 2008

Я пытаюсь использовать символические ссылки в одном из приложений, запущенных на Tomcat5. Благодаря некоторой помощи от другого вопроса StackOverflow я смог это сделать путем создания файла context.xml в

/ ... MyApplication / META-INF / context.xml

Я сейчас пытаюсь реализовать это на рабочем сервере. Однако на нем работают другие приложения. И есть еще один файл контекста

/ ... кот / CONF / context.xml

Мне кажется, это настройка всех серверов для всех приложений. Если я разрешу ссылки в файле conf / context.xml, мои символические ссылки будут работать. Если я не разрешаю ссылки в conf / context.xml, символические ссылки моего приложения не работают, хотя я разрешил их в META-INF / context.xml

У меня вопрос: контролирует ли conf / context.xml все приложения? Если я хочу, чтобы символические ссылки работали только в одном приложении, нужно ли мне удалять conf / context.xml и создавать новые файлы контекста для каждого приложения? Или есть способ, которым я могу разрешить символические ссылки только в моем приложении?

Ответы [ 2 ]

7 голосов
/ 27 ноября 2008

См. мой ответ на вопрос " Какой контекстный файл Tomcat 5 имеет приоритет ".

Что касается вашего конкретного вопроса allowLinks, значение в conf/context.xml имеет приоритет по умолчанию. Если вы ничего не говорите в своем conf/context.xml, значением по умолчанию будет allowLinks="false" в вашем conf/context.xml.

Если вы хотите изменить его только для myapplication, попытка сказать <Context allowLinks="true" ...> в вашем META-INF/context.xml не будет иметь никакого эффекта, потому что обычно настройка conf/context.xml будет иметь приоритет.

Но если вы скажете <Context allowLinks="true" <b>override="true"</b> ...> в своем META-INF/context.xml, тогда все ваши настройки <Context> в META-INF/context.xml будут иметь наивысший приоритет, переопределяя что-либо в conf/context.xml.

Наконец, вместо файла myapplication/WEB-INF/context.xml я рекомендую использовать файл conf/Catalina/localhost/myapplication.xml. Этот метод означает, что вы можете содержать содержимое вашего WEB-INF в чистоте, что является основой вашего веб-приложения - я не люблю рисковать, разбираясь в кишках моего веб-приложения. : -)

0 голосов
/ 04 марта 2009

Просто чтобы добавить точку.

Обычно th meta-inf / context.xml копируется в файл conf / Catalina / localhost / myapplication.xml

При повторном развертывании файла войны файл conf / Catalina / localhost / myapplication.xml удаляется, а новый копируется, как описано выше.

Это может быть настоящей болью. Мне нравится идея конкретного контекста приложения, но я не вижу, как это помогает в каталоге meta-inf.

Для Prod, UAT и т. Д. Это становится настоящей болью.

Так что для любого статического сервера, кроме конкретного приложения, лучше поместить его в файл conf / context.xml. Что отрицательно, так как содержит контекст для нескольких приложений, коснитесь одного, непреднамеренно коснитесь их всех.

...