Как настроить виртуальный хост Tomcat без веб-приложений? - PullRequest
3 голосов
/ 18 февраля 2012

Я пытаюсь перенести мое веб-приложение из смолы в Tomcat7.Меня смущает то, что я не знаю, как настроить веб-приложение по умолчанию для одного виртуального хоста?

То есть на моем сайте есть только одно приложение: "/", расположенное в "/home/destiny/www".Внутри много PHP-скриптов (обслуживаемых apache) и один каталог WEB-INF со стандартным приложением JavaEE.My app is not packaged in WAR , it is default expanded.

Я пытаюсь найти документы о том, как настроить виртуальный хост в tomcat 7, но для всех примеров нужен каталог 'webapps' для расширения WARs, но это не мой случай!

Вот мои настройки server.xml (tomcat 7.0.23):

<Host name="myhost.com" xmlBase="/home/destiny/www" 
  unpackWARS="false" autoDeploy="true">
  <Context path="/" docBase="." />
</Host>

<!-- default tomcat's host -->
<Host name="localhost"  appBase="webapps"
  unpackWARs="true" autoDeploy="true"> ... </Host>

Когда я запускаю tomcat, я вижу, что мое веб-приложение не загружено, только веб-приложения tomcat (хост-менеджер, менеджер, примеры, документы)., ROOT ...) загружен.Когда я открываю свой сайт, он показывает экран по умолчанию для Tomcat (с разбитыми изображениями).

Конфигурация не работает ... (я пробовал xmlBase, appBase, docBase ... но все in invain)

Кажется, одним из решений является веб-приложение с именем 'ROOT' в каталоге /home/destiny/www/webapps/ROOT, но я не хочу, чтобы это решение!Я хочу, чтобы мое веб-приложение по умолчанию находилось в / home / destiny / www.и не будет никаких других установленных веб-приложений (мне не нужен webapps dir).

Как решить эту проблему (в смоле это так легко достичь)?Спасибо.

Ответы [ 3 ]

2 голосов
/ 03 марта 2013

Это работает для меня в Tomcat 7:

<Host name="myhost.com" appBase="">
  <Context path="/" docBase="/home/destiny/www"/>
</Host>

Вероятно, это не лучший способ настроить Tomcat, но он быстро запускает веб-приложение.

2 голосов
/ 23 октября 2013

Это старая ветка, но я хотел поделиться своим опытом, так как он появился в моих результатах поиска.Моя проблема заключалась в обновлении старых приложений JSP, которые были взорваны в файловой структуре, содержащей подкаталоги на новом сервере, который использовал cPanel и простую установку tomcat 7.Файлы в подкаталогах не могли ссылаться на включенные файлы в других каталогах.По сути, Tomcat создавал отдельный контекст для каждого подкаталога, а затем я получал множество ошибок, связанных с отсутствием файлов на включениях.

Поэтому я сделал то, что предложил Марк, с небольшим изменением.Мой сервер был настроен с корневым корневым веб-документом каждого виртуального хоста, установленным в / home / domainuser / public_html, а tomcat server.xml по умолчанию устанавливал для этого каталога и базу данных приложения, и контекстную базу данных.

Итак, в конечном итоге сработало «разделить» путь к каталогу и поместить part в качестве базы приложений, а затем базу данных для моего контекста в качестве каталога public_html.Смотрите пример ниже.

    <Host name="domain.com" appBase="/home/domainuser/" unpackWARs="false" deployXML="false">
      <Alias>www.domain.com</Alias>
      <Context path="" reloadable="true" docBase="public_html" debug="1"/>
   </Host>
2 голосов
/ 19 февраля 2012

Чтобы указать свой собственный каталог, попробуйте следующее:

перейдите в папку tomcat %path_to_tomcat%/conf/Catalina/localhost Вы также можете изменить localhost на свой хост, если хотите, но если единственное, что вы пытаетесь сделать, это установить приложение на «/», то с localhost все в порядке.

создайте файл с именем ROOT.xml в ранее определенной папке. В этот файл добавьте следующее

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/home/destiny/www">
</Context>

Также посмотрите в% path_to_tomcat% / webapps / и удалите / переместите / переименуйте папку ROOT, которая там есть, если вы не хотите, чтобы страница по умолчанию для Tomcat была там.

См. Подход # 2 @ по этой ссылке для более подробной информации.

...