Назад | Перейти на главную страницу

Проблема vhost Tomcat6

Я использую vhosts на своей машине для разработки XP практически без проблем, но я не могу дублировать среду на Ubuntu. Я уже добавил строку в / etc / hosts вот так:

127.0.0.1    localhost
127.0.0.1    test    # ADDED

Затем новая запись Host в server.xml:

<Host name="test"  appBase="webapps2" unpackWARs="true" autoDeploy="true"
    xmlValidation="false" xmlNamespaceAware="false">
</Host>

Затем, чтобы убедиться, что это работает, я скопировал веб-приложения по умолчанию в webapps2. Затем убедился, что разрешения и даже владельцы и группы совпадают. Но когда я указываю в браузере http: // тест: 8080, Я получил:

The requested resource (/) is not available. 

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

У меня такая же проблема. Я не уверен, что понимаю ваш ответ. Я сделал следующее:

  1. переместил приложение в папку рядом с webapps (в моем примере назовем это my-folder), приложение было перемещено на свой ROOT подпапка
  2. удалил ROOT.xml из $CATALINA_BASE/conf/[enginename]/[hostname]/ для второго хоста я даже не уверен, действительно ли этот шаг был нужен
  3. добавлен элемент контекста внутри основного элемента, например:

    <Host name="my-domain.name" appBase="my-folder" autoDeploy="true" unpackWARs="true">
    <Context path="/"></Context>
    </Host>
    

Как-то сработало приложение по умолчанию, расположенное в webapps/ROOT отвечает на все домены и прямые вызовы IP http. В my-folder/ROOT отвечает на my-domain.name как и ожидалось.

Наконец-то он заработал. В документации tomcat я интерпретировал строку:

For Tomcat 6, unlike Tomcat 4.x, it is NOT recommended to place
<Context> elements directly in the server.xml file.

означает, что элементы контекста вообще не должны определяться в server.xml. Итак, как рекомендовано, я использовал каталог myWebappROOT / META-INF и определил там context.xml. Однако этот абзац:

* Only if a context file does not exist for the application in the
$CATALINA_BASE/conf/[enginename]/[hostname]/, in an individual file at /META-
INF/context.xml inside the application files. If the web application is
packaged as a WAR then /META-INF/context.xml will be copied to
$CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to match the
application's context path. Once this file exists, it will not be replaced if
a new WAR with a newer /META-INF/context.xml is placed in the host's appBase.

... похоже, указывает на то, что первый контекст, который я определяю в META-INF, будет помещен в вышеупомянутый каталог и не будет заменен последующими изменениями. Я решил удалить файлы conf [enginename] / [hostname], которые для меня были бы Catalina / test, и добавить минимальный элемент контекста в server.xml. На данный момент это, похоже, решило проблему, по крайней мере, с точки зрения среды разработки. Надеюсь, кто-нибудь сможет пролить свет на правильный способ развертывания дополнительных хостов в производственной среде.