在上一章中,我们学习了如何打包应用程序并将其部署到文件夹。
在本章中,我们将直接将Web应用程序部署到应用程序服务器部署文件夹,然后我们将添加一些Ant目标来启动和停止服务。让我们继续 Hello World 传真Web应用程序。这是前一章的延续,新组件以粗体突出显示。
#用于构建springapp的Ant属性 appserver.home = c:\\install\\apache-tomcat-7.0.19 #Tomcat 5使用$ appserver.home}/server/lib #for Tomcat 6使用$ appserver.home}/lib appserver.lib = ${appserver.home}/lib deploy.path = ${appserver.home}/webapps tomcat.manager.url = http://www.it1352.com/manager tomcat.manager.username = it1352 tomcat.manager.password = secret
<?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中的webapp文件夹。
可以使用Tomcat管理器应用程序停止并启动Tomcat中的应用程序。管理器应用程序的URL,用户名和密码也在build.properties文件中指定。接下来,我们声明一个包含 catalina-ant.jar 的新CLASSPATH。这个jar文件是通过Apache Ant执行Tomcat任务所必需的。
catalina-ant.jar提供以下任务 :
Sr.No。 | 属性&说明 |
---|---|
1 | InstallTask 安装Web应用程序。 类名:org.apache.catalina.ant.InstallTask |
2 | ReloadTask 重新加载网络应用程序。 类名:org.apache.catalina.ant.ReloadTask |
3 | ListTask 列出所有Web应用程序。 类名:org.apache.catalina.ant.ListTask |
4 | StartTask 启动Web应用程序。 类名:org.apache.catalina.ant.StartTask |
5 | StopTask 停止Web应用程序。 类名:org.apache.catalina.ant.StopTask |
6 | Reloa dTask 在不停止的情况下重新加载Web应用程序。 类名:org.apache.catalina.ant.ReloadTask |
重装任务需要以下附加参数 :
管理器应用程序的URL
重启Web应用程序的用户名
重启Web应用程序的密码
要重新启动的Web应用程序的名称
让我们发出 deploy-war 命令将webapp复制到Tomcat webapps文件夹,然后让我们重新加载Fax Web应用程序。以下结果是运行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
完成上述任务后,部署Web应用程序并重新加载Web应用程序。