Как создать виртуальный каталог в Tomcat 7? - PullRequest
1 голос
/ 11 мая 2011

Tomcat установлен в C: \ tomcat7 \, но я хочу развернуть .war-файлы в C: \ myapp \ xyz.Например, у меня может быть C: \ myapps \ xyz \ MyApp.war, и я смогу найти его по пути http://localhost:8080/MyApp.

Я попытался добавить это в конец c: \ tomcat7 \ conf\ server.xml

      <Host
          name="myapp"
          appBase="c:\myapps\xyz\"
          unpackWARs="true"
          autoDeploy="true">
      </Host>
    </Engine>
  </Service>
</Server>

Кажется, это не работает, так как я не вижу MyApp в списке в консоли управления и не могу нажать на URL.Что еще мне нужно сделать?

Кроме того, немного не связано, но как мне не привязать имя файла войны к имени контекста или пути URL?Например, я хочу, чтобы http://localhost/coolName указывал на C: \ myapps \ xyz \ MyApp.war.

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

К сожалению, способ, которым Tomcat загружает войну по имени файла, является хитрым ограничением.

Я использую немного другой и специфичный для ОС подход: «Символические ссылки».Это не прямой ответ, но может помочь вам в любом случае.

Предостережения:

  1. Я использую Linux, но это
    также возможно в Windows Vista и
    Windows 7.
  2. использование войн все еще неудобно с использованием этого метода.Войны - это zip-файлы, поэтому лучше всего распаковать вашу войну в папку с именем
    с именем версии.

Решение:

Создать символические ссылки (например,Виртуальный каталог в файловой системе) из папки myapps в папку webapps.

  • Это включает "coolName", "coolName-v2" и т. Д.
  • каждое веб-приложение потенциально может храниться в разных местах файловой системы
  • Вы можете легко«откатить» или «обновить», просто удалив и повторно добавив символические ссылки к различным целям (обязательно «остановите» веб-приложение при переключении)

Linux:

ln -s target_name link_name

Vista / Windows 7:

mklink link_name target_name

Таким образом, вы все еще можете использовать c: \ tomcat7 \ webapps \, но указывать символические ссылки следующим образом:

mklink c:\tomcat7\webapps\coolName\ c:\myapps\xyz\webapp123\

(Примечание.: Для войн сначала нужно разархивировать войну)

HTH

0 голосов
/ 11 мая 2011

Ваше право в том, что вы хотите установить параметр appBase записи Host.Вот предыдущий вопрос, в котором обсуждается, что нужно сделать под Windows: Apache Tomcat под Windows: Изменение каталога по умолчанию для веб-приложений

Что касается изменения имени приложения, добавьте context.xml вКаталог META-INF: Отделение имени приложения войны от имени файла войны

...