Java

         

Развертывание веб-приложения на 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-сервере.



Содержание раздела