Развернуть приложение на пользовательском хосте Tomcat - PullRequest
11 голосов
/ 12 октября 2010

У меня возникли некоторые проблемы при развертывании приложения.

Среда: Ubuntu 10.04, Tomcat 7.02 (установка из архива с сайта tomcat, а не из репозиториев), сервер запускается и останавливается вручную, без использования IDE.

Для первого я создал хост в $CATALINA_HOME/conf/server.xml:

<Host name="java.dev"  
      appBase="/home/krasilich/java/"  
      autoDeploy="true" >  
    <Alias>www.java.dev</Alias>  
</Host>

Затем создайте контекст в $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml:

<Context docBase="siloc/web/" />

И получил ошибку

docBase / home / krasilich / java / siloc / web / внутри хоста appBase была указана и будет игнорироваться

Но, если я скопирую менеджер.XML $CATALINA_HOME/conf/Catalina/java.dev/ Я могу запустить приложение менеджера.Если я развертываю свое приложение через менеджер - он говорит, что все идет хорошо, но я все еще вижу 404 на java.dev:8080/siloc/

Это все о настраиваемом хосте.

IЯ пытался развернуть приложение через менеджер на локальном хосте, и он работает, я вижу мое "Hello Word" на локальном хосте: 8080 / siloc /

Но, если я изменю текст в моем index.jsp, он 'не повлияет на интерфейс.Кнопка «Повторное развертывание» мне не поможет.

Как я уже говорил, менеджер просто копирует файлы приложения в каталог webapps и не вносит никаких изменений в конфигурационные файлы.

Все, что мне нужночто я могу развернуть приложение в любом каталоге в моей файловой системе (на самом деле это будет /home/krasilich/java/).

И было бы здорово, если бы я мог сделать это на пользовательском хосте, таком как java.dev Мне нужен ответ, почемуконтекст в $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml не работает для меня, и что мне делать, чтобы он был согласованным?

Спасибо.

1 Ответ

18 голосов
/ 13 октября 2010

Мне удалось воспроизвести вашу проблему.

Есть 2 способа, которые я могу предложить, возившись с комбинациями appBase и docBase.Похоже, что эти два не работают вместе.

Вариант 1 - удалить appBase

Удалите appBase из server.xml и укажите полный путь к веб-приложению в docBase в$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml

Я предполагаю, что ваше значение будет /home/krasilich/java/siloc/web/siloc.

Примечание: при указании только родительской папки /home/krasilich/java/siloc/web/ покажет список каталогов родительской папки

Вариант 2 - Удалить docBase

В $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml

удалить docBase и оставить только <Context/>

Tomcat выводит имя веб-приложения siloc из$CATALINA_HOME/conf/Catalina/java.dev/siloc.xml и он ищет веб-приложение с именем siloc в appBase.

Это позволяет java.dev:8080/siloc/ работать, если вы также измените appBase в server.xml народительская папка вашего веб-приложения siloc.

В ответ на то, почему manager работает, по той же причине - в менеджере нет docBase. xml

Я пробую другие комбинации docBase, нолюбое значение, которое я даю, выдает

ПРЕДУПРЕЖДЕНИЕ: была указана docBase ... внутри хоста appBaseed, и будут игнорироваться

Так что мой вывод - удалить docBase.Это не очень хорошая идея, поскольку полный путь к родительской папке жестко запрограммирован в server.xml.

...