В предыдущей главе мы узнали, как упаковать приложение и развернуть его в папке.
В этой главе мы собираемся развернуть веб-приложение непосредственно в папке развертывания сервера приложений, а затем добавим несколько целей Ant для запуска и остановки служб. Давайте продолжим работу с факс-веб-приложением Hello World . Это продолжение предыдущей главы, новые компоненты выделены жирным шрифтом .
build.properties
# Ant properties for building the springapp appserver.home = c:\\install\\apache-tomcat-7.0.19 # for Tomcat 5 use $appserver.home}/server/lib # for Tomcat 6 use $appserver.home}/lib appserver.lib = ${appserver.home}/lib deploy.path = ${appserver.home}/webapps tomcat.manager.url = http://www.tutorialspoint.com:8080/manager tomcat.manager.username = tutorialspoint tomcat.manager.password = secret
build.xml
<?xml version = "1.0"?> <project name = "fax" basedir = "." default = "usage"> <property file = "build.properties"/> <property name = "src.dir" value = "src"/> <property name = "web.dir" value = "war"/> <property name = "javadoc.dir" value = "doc"/> <property name = "build.dir" value = "${web.dir}/WEB-INF/classes"/> <property name = "name" value = "fax"/> <path id = "master-classpath"> <fileset dir = "${web.dir}/WEB-INF/lib"> <include name = "*.jar"/> </fileset> <pathelement path = "${build.dir}"/> </path> <target name = "javadoc"> <javadoc packagenames = "faxapp.*" sourcepath = "${src.dir}" destdir = "doc" version = "true" windowtitle = "Fax Application"> <doctitle><![CDATA[<h1> = Fax Application = </h1>]]></doctitle> <bottom><![CDATA[Copyright © 2011. All Rights Reserved.]]></bottom> <group title = "util packages" packages = "faxapp.util.*"/> <group title = "web packages" packages = "faxapp.web.*"/> <group title = "data packages" packages = "faxapp.entity.*:faxapp.dao.*"/> </javadoc> </target> <target name = "usage"> <echo message = ""/> <echo message = "${name} build file"/> <echo message = "-----------------------------------"/> <echo message = ""/> <echo message = "Available targets are:"/> <echo message = ""/> <echo message = "deploy --> Deploy application as directory"/> <echo message = "deploywar --> Deploy application as a WAR file"/> <echo message = ""/> </target> <target name = "build" description = "Compile main source tree java files"> <mkdir dir = "${build.dir}"/> <javac destdir = "${build.dir}" source = "1.5" target = "1.5" debug = "true" deprecation = "false" optimize = "false" failonerror = "true"> <src path = "${src.dir}"/> <classpath refid = "master-classpath"/> </javac> </target> <target name = "deploy" depends = "build" description = "Deploy application"> <copy todir = "${deploy.path}/${name}" preservelastmodified = "true"> <fileset dir = "${web.dir}"> <include name = "**/*.*"/> </fileset> </copy> </target> <target name = "deploywar" depends = "build" description = "Deploy application as a WAR file"> <war destfile = "${name}.war" webxml = "${web.dir}/WEB-INF/web.xml"> <fileset dir = "${web.dir}"> <include name = "**/*.*"/> </fileset> </war> <copy todir = "${deploy.path}" preservelastmodified = "true"> <fileset dir = "."> <include name = "*.war"/> </fileset> </copy> </target> <target name = "clean" description = "Clean output directories"> <delete> <fileset dir = "${build.dir}"> <include name = "**/*.class"/> </fileset> </delete> </target> <!-- ============================================================ --> <!-- Tomcat tasks --> <!-- ============================================================ --> <path id = "catalina-ant-classpath"> <!-- We need the Catalina jars for Tomcat --> <!-- * for other app servers - check the docs --> <fileset dir = "${appserver.lib}"> <include name = "catalina-ant.jar"/> </fileset> </path> <taskdef name = "install" classname = "org.apache.catalina.ant.InstallTask"> <classpath refid = "catalina-ant-classpath"/> </taskdef> <taskdef name = "reload" classname = "org.apache.catalina.ant.ReloadTask"> <classpath refid = "catalina-ant-classpath"/> </taskdef> <taskdef name = "list" classname = "org.apache.catalina.ant.ListTask"> <classpath refid = "catalina-ant-classpath"/> </taskdef> <taskdef name = "start" classname = "org.apache.catalina.ant.StartTask"> <classpath refid = "catalina-ant-classpath"/> </taskdef> <taskdef name = "stop" classname = "org.apache.catalina.ant.StopTask"> <classpath refid = "catalina-ant-classpath"/> </taskdef> <target name = "reload" description = "Reload application in Tomcat"> <reload url = "${tomcat.manager.url}"username = "${tomcat.manager.username}" password = "${tomcat.manager.password}" path = "/${name}"/> </target> </project>
В этом примере мы использовали Tomcat в качестве сервера приложений. Во-первых, в файле свойств сборки мы определили некоторые дополнительные свойства.
-
Appserver.home указывает путь установки к серверу приложений Tomcat.
-
Appserver.lib указывает на файлы библиотеки в папке установки Tomcat.
-
Переменная deploy.path теперь указывает на папку веб-приложения в Tomcat.
Appserver.home указывает путь установки к серверу приложений Tomcat.
Appserver.lib указывает на файлы библиотеки в папке установки Tomcat.
Переменная deploy.path теперь указывает на папку веб-приложения в Tomcat.
Приложения в Tomcat можно остановить и запустить с помощью приложения менеджера Tomcat. URL-адрес приложения-менеджера, имя пользователя и пароль также указываются в файле build.properties. Далее мы объявляем новый CLASSPATH, который содержит catalina-ant.jar . Этот jar-файл необходим для выполнения задач Tomcat через Apache Ant.
Catalina-ant.jar предоставляет следующие задачи —
Sr.No. | Свойства и описание |
---|---|
1 |
InstallTask Устанавливает веб-приложение. Имя класса: org.apache.catalina.ant.InstallTask |
2 |
ReloadTask Перезагрузите веб-приложение. Имя класса: org.apache.catalina.ant.ReloadTask |
3 |
ListTask Перечисляет все веб-приложения. Имя класса: org.apache.catalina.ant.ListTask |
4 |
StartTask Запускает веб-приложение. Имя класса: org.apache.catalina.ant.StartTask |
5 |
StopTask Останавливает веб-приложение. Имя класса: org.apache.catalina.ant.StopTask |
6 |
ReloadTask Перезагрузка веб-приложения без остановки. Имя класса: org.apache.catalina.ant.ReloadTask |
InstallTask
Устанавливает веб-приложение.
Имя класса: org.apache.catalina.ant.InstallTask
ReloadTask
Перезагрузите веб-приложение.
Имя класса: org.apache.catalina.ant.ReloadTask
ListTask
Перечисляет все веб-приложения.
Имя класса: org.apache.catalina.ant.ListTask
StartTask
Запускает веб-приложение.
Имя класса: org.apache.catalina.ant.StartTask
StopTask
Останавливает веб-приложение.
Имя класса: org.apache.catalina.ant.StopTask
ReloadTask
Перезагрузка веб-приложения без остановки.
Имя класса: org.apache.catalina.ant.ReloadTask
Задача перезагрузки требует следующих дополнительных параметров —
- URL к менеджеру приложения
- Имя пользователя для перезапуска веб-приложения
- Пароль для перезапуска веб-приложения
- Имя веб-приложения для перезапуска
Давайте выполним команду deploy-war, чтобы скопировать веб-приложение в папку веб-приложений Tomcat, а затем перезагрузим веб-приложение Fax. Следующий результат является результатом запуска файла Ant —
C:\>ant deploy-war Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 6.3 seconds C:\>ant reload Buildfile: C:\build.xml BUILD SUCCESSFUL Total time: 3.1 seconds
После запуска вышеуказанной задачи веб-приложение развертывается и веб-приложение перезагружается.