Файлы Tomcat context.xml, есть ли тут привет?

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

/...myapplication/META-INF/context.xml

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

/...tomcat/conf/context.xml

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

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

2 ответа

Решение

Смотрите мой ответ на вопрос" Какой файл контекста 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" override="true" ...> в вашем META-INF/context.xmlтогда все твои <Context> настройки в META-INF/context.xml будет наивысшим приоритетом, переопределяя что-либо в conf/context.xml,

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

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

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

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

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

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

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

Другие вопросы по тегам