Развертывание веб-приложения на Tomcat
Если все работает, можно приступать к развертыванию вашего веб-приложения на Tomcat.
Предположим, что JBuilder автоматически создал файл report.war вашего проекта, где report - имя проекта, заданное в визарде при создании скелета приложения.
Для того чтобы приложение стало доступно для Tomcat, скопируйте этот файл в CATALINA_HOME/webapps/.
Теперь все, что остается сделать, это прописать необходимые сведения в файл CATALINA_HOME/conf/server.xml.
Найдите то место, где начинается описание контекста приложения examples. Эта запись должна начинаться со строки вида:
<CONTEXT DEBUG="0" PATH="/examples" DOCBASE="examples" >
reloadable="true" crossContext="true">
Перед ней создайте свой контекст приложения. При этом новая запись будет выглядеть примерно так:
<CONTEXT DEBUG="0" PATH="/report" DOCBASE="report.war" >
reloadable="true" crossContext="true">
</CONTEXT>
Теперь несколько коротких пояснений по этому примеру.
Как можно заметить, имя нашего файла приложения в этом примере - report.war. Относительный адрес хоста приложения при этом "./report/" от корня сервера, то есть полный адрес вашего приложения - (при условии, что первая страница - это index.jsp).
reloadable="true" - сообщает, что приложение не нуждается в перезапуске сервера и автоматически будет обновлено, если вы скопируете на место старого файла *.war его новую версию.
crossContext="true" - сообщает серверу, что этот каталог будет доступен также и из других веб-приложений.
Запустите Tomcat - и увидите, что архив вашего приложения автоматически развернулся в папку в CATALINA_HOME/webapps/.
Если вы хотите, чтобы этого не происходило, найдите запись:
<HOST DEBUG="0" ><BR NAME="localhost" APPBASE="webapps"> unpackWARs="true" autoDeploy="true">
- и присвойте параметру unpackWARs значение "false".
Еще один очень важный момент при развертывании вашего приложения на сервере - необходимо помнить: если Tomcat не видит какой-либо библиотеки, но при этом в вашей среде разработки все прекрасно работало, то это может быть обусловлено тремя причинами:
- WEB-INF/lib-директория в вашем *.war-файле не содержит оных библиотек.
- Названия библиотек оканчиваются расширением *.zip. Странно, но Tomcat в таком случае не видит их. Измените расширение этих файлов на *.jar и перезапустите сервер.
- Точные копии ваших библиотек находятся еще в каком-то каталоге /lib Tomcat.
Впрочем, стоит заметить, что для последних версий Tomcat эта проблема была устранена.
В ближайшем будущем мы рассмотрим также некоторые тонкости и подходы при создании Java веб-приложений на примере создания простого веб-приложения с использованием технологии Java2.
Надеюсь, эта статья окажется полезной для всех, кто собирается разрабатывать собственные веб-приложения с использованием технологии Java на Linux-сервере.