2016-01-09 4 views
0

Док говорит, что это способ передачи параметров в веб-приложение от server.xml:Как добавить параметр контекста только к одному webapp в tomcat?

<Context> 
    ... 
    <Parameter name="companyName" value="My Company, Incorporated" 
     override="false"/> 
    ... 
</Context> 

Я думаю, что по умолчанию это будет отправить значение COMPANYNAME на всех WebApps.

Как отправить этот параметр только один веб-приложение

Примечание, я понимаю, что вы можете добавить записи в файл /WEB-INF/web.xml в веб-приложение. Тем не менее, я хочу, чтобы решение было установлено на уровне tomcat. Я вообще не хочу редактировать военный файл.

Есть ли другой способ отправить этот параметр только одному webapp?

GC

+0

Вы имеете в виду 'conf/server.xml' или' conf/context.xml'? Один будет работать, как вы описываете, а другой ничего не сделает, как то, что вы описываете. –

+0

Я имею в виду сервер.xml. –

ответ

0

Нет, вы не можете добавить его в файл server.xml, если вы не хотите его во всех WebApps. Вместо этого вы должны добавить его в файл context.xml в своей папке META-INF вашего проекта, которая потребует изменения вашей войны.

+0

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

+1

С момента своего добавления к вашему проекту каждый раз, когда вы развертываете войну, он попадает в нее внутри, поэтому вам не нужно менять его, если вы этого не хотите. И, как я уже говорил, вы не можете сделать это точно так, как хотите, так как это противоречит спецификациям сервера. Если вам удастся найти другое решение, определите его с нами. –

+0

Также прочитайте это для всех возможных способов определения контекста: http://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context –

0

<Context> без ссылки docbase, path и т. Д. Недействителен в server.xml, так что вы ничего не сделали с конфигурацией, размещенной в вашем вопросе. Я ожидал, что Tomcat не начнет давать эту конфигурацию.

Если у вас была правильная конфигурация, то <Parameter> повлияет только на контекст, в котором он был определен.

Если вы положили <Parameter> в conf/context.xml, вы фактически определяете этот параметр в каждом контексте, развернутом в вашем экземпляре Tomcat.

Если вы хотите переопределить META-INF/context.xml, который поставляется в комплекте с веб-приложением (потому что вы не хотите добавлять <Parameter> каждый раз, когда вы катите новый выпуск), вы должны использовать хорошо документированную технику переопределения веб-приложение META-INF/context.xml, предоставив свой собственный в conf/[engine]/[host]/[appname].xml.

+0

Есть ли conf/[engine]/[host]/[ appname] .xml переопределяет весь файл или только часть web.xml приложения? –

+0

'conf/[engine]/[host]/[appname] .xml' вообще не отменяет часть' web.xml'. –

+0

Думаю, у вас есть правильная идея. Я не могу проверить это прямо сейчас. Однако идея кажется правильной. Я, вероятно, вернусь к этому через несколько недель. –