Развернуть приложение на пользовательском хосте Tomcat
Вопрос
У меня есть некоторые проблемы, чтобы развернуть мое приложение.
Окружающая среда: 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/Inside Host Appbase была указана и будет игнорирована
Но, если я скопирую Manager.xml $CATALINA_HOME/conf/Catalina/java.dev/
Я могу запустить приложение Manager. Если я развертываю свое приложение через менеджера - он говорит, что все идет хорошо, но я все еще вижу 404 на java.dev:8080/siloc/
Это все о пользовательском хосте.
Я пытался развернуть приложение через менеджера на Localhost, и это работает, я вижу свое «привет слово» на Localhost: 8080/siloc/
Но, если я изменю текст в своем index.jsp, это не повлияет на Frontend. Для меня не помогает кнопка "RedPloy".
Как я уже упоминал, менеджер просто скопируйте файлы приложений в каталог WebApps и не вносите никаких изменений в файлах конфигурации.
Все, что мне нужно, что я могу развернуть приложение в любом каталоге в моей файловой системе (на самом деле это будет /home/krasilich/java/
).
И было бы здорово, если бы я мог сделать это на пользовательском хосте, например Java.Dev, мне нужен ответ, почему контекст в $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
Разве для меня не работает, и что мне делать, чтобы сделать его последовательным?
Спасибо.
Решение
Я смог повторить вашу проблему.
Есть 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 делает имя WebApp siloc
от $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
И он ищет веб -приложение по имени siloc
в приложении.
Это позволяет java.dev:8080/siloc/ работать при условии, что вы также измените appBase
в server.xml
в родительскую папку вашего веб -приложения siloc
.
В ответ на почему manager
Работает, та же причина - в Manager.xml нет Docbase.
Я пробую другие комбинации Docbase, но любая ценность, которую я даю, бросает
Предупреждение: DOCBASE ... Внутри хоста Appbase была указана и будет проигнорирована
Поэтому мой вывод - удалить базу DOC. Это не очень хорошая идея - поскольку полный путь к родительской папке затем жестко кодируется в Server.xml.