在之前的章节中,我们已经学会了如何去打包一个应用程序以及怎样将其部署到一个文件夹中。
在这个章节中,我们将要直接将 web 应用程序部署到一个应用服务器的部署文件夹中。随后,我们将添加一些 Ant 目标来启动和停止服务。让我们继续 Hello World fax
web 应用程序。 这一章节是对之前的章节的一个延续,所有新的组件会用粗体突出显示。
# Ant properties for building the springapp
appserver.home=c:installapache-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
<?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>
</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 作为我们应用的服务器。 首先,在构建属性文件中,我们已经定义了一些附加属性。
在 Tomcat 中的应用程序能通过使用 Tomcat 管理应用程序进行启动和停止。管理应用程序的统一资源定位器(URL),用户名和密码也在 build.properties 文件夹中进行指定。 接下来,我们声明一个新的 CLASSPATH 来包含 catalina-ant.jar。 若要通过 Apache Ant 来运行 Tomcat, 这个 jar 文件是必须的。
catalina-ant.jar 提供了下述的任务:
属性 | 描述 |
---|---|
InstallTask | 安装一个 web 应用程序。 类名字为: org.apache.catalina.ant.InstallTask |
ReloadTask | 重新安装一个 web 应用程序。类名字为: org.apache.catalina.ant.ReloadTask |
ListTask | 列出所有的 web 应用程序。类名字为: Class Name: org.apache.catalina.ant.ListTask |
StartTask | 启动一个 web 应用程序。类名字为: org.apache.catalina.ant.StartTask |
StopTask | 停止一个 web 应用程序。类名字为: org.apache.catalina.ant.StopTask |
ReloadTask | 重新加载一个无需停止的 web 应用程序。类名字为:org.apache.catalina.ant.ReloadTask |
重载任务需要下列附加参数:
让我们发出部署 war (deploy-war)的命令来复制 web 应用程序到 Tomcat 的 webapps 文件夹中。同时,我们重新加载传真 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 应用程序就是已经被部署好且重新加载了的。
Eclipse 创建 XML 文件打开新建 XML 文件向导 你可以使用新建 XML 文件向导来创建 XML 文件。打开向导的方式有:点击 File 菜单...
Debug 调试 Java 程序我们可以在 Package Explorer 视图调试 Java 程序,操作步骤如下:鼠标右击包含 main 函数的 java 类选择 D...
管理任务在Eclipse中用TODO标签管理任务,利用这个功能可以方便地将项目中一些需要处理的任务记录下来。我们可以在 Java 代码中...
Redis Psetex 命令Redis 字符串(string) Redis Psetex 命令以毫秒为单位设置 key 的生存时间。语法 redis Psetex 命令基本语法如...
视图constraint_table_usage标识在当前数据库中被某个约束使用的所有表(这与视图table_constraints不同,它标识哪些表约束定义...
视图foreign_servers包含当前数据库中定义的所有外部服务器。只有那些当前用户能够访问(作为拥有者或具有某些特权)的外部服务...
有时在修改行的操作过程中获取数据很有用。INSERT、 UPDATE和DELETE命令都有一个支持这个的可选的 RETURNING子句。使用RETUR...
7.8.1. WITH中的SELECT7.8.2. WITH中的数据修改语句 WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通...
目录pg_seclabel存储数据库对象上的安全标签。安全标签可以通过SECURITY LABEL命令操纵。简单的查看安全标签方法请见第51.83节。...