Как указать путь в META-INF/context.xml для Tomcat

Я использую Tomcat 7 и хотел бы установить корневой контекст файла war в самом файле war и иметь Tomcat autodeploy и забрать этот путь. Я думал, что нашел способ сделать это, поставив контекст.xml в каталоге META-INF войны, который содержит.

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp"/>

но это, похоже, не работает, я думаю, что он загружен http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/SetContextPropertiesRule.html какие состояния он загружает но все пути!

Я знаю,что могу назвать войну somepath#myapp.война и она поднимет его, но я также развернусь в weblogic, который не доволен таким именем.

есть ли какая-то настройка, которую я могу использовать, чтобы путь работал из контекста.XML и выше?

спасибо Дэвид!--2-->

4 ответов


Контекст вне места appBase для хоста, или приложение будет развернуто дважды.

In:conf/Catalina/localhost/myapp#path.xml

<?xml version="1.0"?>
<Context docBase="/some/path/to/myapp.war">
</Context>

добавить copyXML= "true" для размещения конфигурации внутри $TOMCAT_HOME/conf/server.как в XML

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" copyXML="true">

In/tomcat7/conf / server.xml добавьте ниже строки внутри элемента и перезапустите Tomcat, чтобы внести изменения.

* измените "mycom" на имя вашего приложения.

<Context path="" docBase="mycom">
  <!-- Default set of monitored resources -->
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
  <!-- Default set of monitored resources -->
  <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

это заставит корневое приложение по умолчанию появиться в корневом контексте "/ROOT".

теперь ваше приложение доступно на "/" и "/mycom" как хорошо!


при загрузке приложения.война в каталог Tomcat не знает, как он может читать что-либо в вашем файле war? Правильное место для добавления этой информации - $TOMCAT_HOME/conf / context.xml-это часть Tomcat, и Tomcat может прочитать этот файл и узнать, где находится ваше приложение и развернуть его. Там больше на Как настроить JNDI в Tomcat