如果想在把一个servlet程序部署在tomcat之上测试它能否运行,做一个初步的测试。而不想花时间为这个servlet来构建一个完整的web应用。 通过执行Tomcat 的Shell 命令来关闭它<tomcat-installation-directory>/bin/shutdown。
复制这个servlet文件到tomcat的缺省web应用中,或者用Ant工具的build.xml文件来移动这个文件临时地进入到Tomcat的缺省web应用中。
有时候当我们设计出一个servlet时,会渴望看看它是否能正常运行。你能够测试它通过复制它到Tomcat的缺省web应用下,除非这个servlet还得运行还需依靠其他的servlet或其他的类组件。这个取胜的应用位于<Tomcat-installation-directory>/webapps/ROOT.
如果有一个完全合法的Servlet类叫做mydev.CookieServlet,那么下面将有一个完整的步骤手动将这个单独的Servlet部署到Tomcat中。
创建一个mydev目录把它放到 <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes目录下 复制CookieServlet class文件到<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes/ jspservletcookbook目录下 启动Tomcat 输入http://localhost:8080/servlet/jspservletcookbook.CookieServlet.
这个手动方法比较麻烦并且很慢有没有比这个更好的部署方法呢?答案是肯定的;
我们将用Jakarta Ant来代替手动部署的流程。假定我们已经安装配置好了Ant开源工具
创建一个方便的目录在下面放入build文件并创建一个global.properties文件
在widows命令行中转到这个目录下 敲入ant命令。
< project name ="Cookbook" default ="deploy-servlet" basedir ="." > < taskdef name ="start" classname ="org.apache.catalina.ant.StartTask" /> < taskdef name ="stop" classname ="org.apache.catalina.ant.StopTask" /> <!-- Load in some global properties --> < property file ="global.properties" /> < target name ="init" description ="Initializes some properties." > < echo message ="Initializing properties." /> < property name ="build" value =".uild" /> < property name ="src" value =".src" /> <!-- The context-path is just a slash character when it is the ROOT application; see the start and stop targets, which already include the slash as part of the URL pattern --> < property name ="context-path" value ="" /> </ target > < target name ="prepare" depends ="init" > < echo message ="Cleaning up the build directory." /> < delete dir ="${build}" /> < mkdir dir ="${build}" /> </ target > <!-- Set the CLASSPATH to various Tomcat .jar files --> < path id ="classpath" > < fileset dir ="${tomcat.dir}/common/lib" > < include name ="*.jar" /> </ fileset > < fileset dir ="${tomcat.dir}/common/endorsed" > < include name ="*.jar" /> </ fileset > </ path > <!-- start the default Tomcat web application --> < target name ="start" description ="Starts the default Web application" > < echo message ="Starting the default application...." /> < start url ="${url}" username ="${username}" password ="${password}" path ="/${context-path}" /> </ target > <!-- stop the default Tomcat web application --> < target name ="stop" description ="Stops the default Web application" > < echo message ="Stopping the application...." /> < stop url ="${url}" username ="${username}" password ="${password}" path ="/${context-path}" /> </ target > <!-- stop the default Tomcat web application, compile your servlet, add it to the default Web application, then start the default web application --> < target name ="deploy-servlet" depends ="prepare" description = "Compile the specified servlet, then move it into Tomcat's default Web application." > < echo message ="Stopping the default Tomcat application...." /> < antcall target ="stop" /> < echo message ="Compiling the servlet...." /> < javac srcdir ="${src}" destdir ="${build}" > < include name ="${compiled.servlet}.java" /> < classpath refid ="classpath" /> </ javac > < echo message = "Copying the servlet to Tomcat ROOT web application..." /> < copy todir ="${tomcat.webapps}/WEB-INF/classes" > < fileset dir ="${build}" /> </ copy > < echo message ="Starting the default application...." /> < antcall target ="start" /> </ target > </ project >
tomcat.webapps=k:/jakarta-tomcat- 4.1.12 /webapps/ROOT
tomcat.dir=k:/jakarta-tomcat- 4.1.12
url=http://localhost:8080/manager
compiled.servlet=CookieServlet
username=tomcat
password=tomcat
用一个属性文件global.properties来加载这些在这个property文件中定义好的属性。如:
${tomcat.dir}
global.properties 文件