Я использую 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.
Это поставило меня в тупик последние несколько дней, и я знаю, что, вероятно, упускаю что-то действительно простое. У кого-нибудь есть идеи?
У меня такая же проблема. Я не уверен, что понимаю ваш ответ. Я сделал следующее:
webapps
(в моем примере назовем это my-folder
), приложение было перемещено на свой ROOT
подпапка$CATALINA_BASE/conf/[enginename]/[hostname]/
для второго хоста я даже не уверен, действительно ли этот шаг был нужендобавлен элемент контекста внутри основного элемента, например:
<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. На данный момент это, похоже, решило проблему, по крайней мере, с точки зрения среды разработки. Надеюсь, кто-нибудь сможет пролить свет на правильный способ развертывания дополнительных хостов в производственной среде.