Файлы 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. Который имеет недостаток в том, что он содержит контекст для нескольких приложений, коснитесь одного, непреднамеренно коснитесь их всех.