1. 下载tomcat 4.1
2. 把servlet.jar, jasper-compiler.jar, jasper-runtime.jar拷贝出来
3. 按下面编写ant文件
需要注意的是,jsp.class的输出路径和jsp.src的路径,要对应起来
xml 代码
- <project name="cgmaster" default="all" basedir=".">
- <property name="devlib.path" value="../devlib"/>
- <property name="runlib.path" value="../lib"/>
- <property name="output.path" value="../build/temp"/>
- <property name="webapp.path" value="../web"/>
- <property name="src.path" value="../src"/>
- <target name="help">
- <java classname="org.apache.jasper.JspC">
- <classpath id="jspc.classpath">
- <pathelement location="${java.home}/../lib/tools.jar"/>
- <fileset dir="${devlib.path}">
- <include name="*.jar"/>
- fileset>
- classpath>
- java>
- target>
- <target name="jspc">
- <taskdef classname="org.apache.jasper.JspC" name="jasper2" >
- <classpath id="jspc.classpath">
- <pathelement location="${java.home}/../lib/tools.jar"/>
- <fileset dir="${devlib.path}">
- <include name="*.jar"/>
- fileset>
- classpath>
- taskdef>
- <jasper2
- validateXml="false"
- uriroot="${webapp.path}"
- webXmlFragment="${output.path}/generated_web.xml"
- outputDir="${src.path}" />
- target>
- <target name="compile">
- <javac destdir="${output.path}"
- optimize="off"
- debug="on" failonerror="false"
- srcdir="${output.path}/jspsrc"
- excludes="**/*.smap">
- <classpath>
- <pathelement location="${webapp.path}/WEB-INF/classes"/>
- <fileset dir="${runlib.path}">
- <include name="*.jar"/>
- fileset>
- <fileset dir="${devlib.path}">
- <include name="*.jar"/>
- fileset>
- classpath>
- <include name="**" />
- <exclude name="tags/**" />
- javac>
- target>
- <target name="all" depends="jspc,compile">
- target>
- project>
<project basedir="." default="all" name="cgmaster"></project>
4. 编写测试用例
java 代码
- package com.mystudio.gmaster;
- import junit.framework.TestCase;
- import com.meterware.servletunit.InvocationContext;
- import com.meterware.servletunit.ServletRunner;
- import com.meterware.servletunit.ServletUnitClient;
- import com.meterware.httpunit.GetMethodWebRequest;
- import com.meterware.httpunit.WebRequest;
- import com.meterware.httpunit.WebResponse;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import cgmaster.index_jsp;
- public class TestServletUnit extends TestCase {
- private InvocationContext ic = null ;
- protected void setUp() throws Exception {
- ServletRunner sr = new ServletRunner();
- sr.registerServlet("index", index_jsp.class.getName());
- ServletUnitClient sc = sr.newClient();
- WebRequest request = new GetMethodWebRequest("http://localhost/index");
- ic = sc.newInvocation(request);
- }
- public void testJspC() throws Exception {
- HttpServletRequest re = ic.getRequest();
- HttpServletResponse rq = ic.getResponse();
- index_jsp is = (index_jsp) ic.getServlet();
- is._jspService(re,rq);
- WebResponse response = ic.getServletResponse();
- System.out.println( response.getText() );
- }
- }
5. 参考
http://www.blogjava.net/Good-Game/archive/2007/11/02/157794.html