﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava- java tech</title><link>http://www.blogjava.net/joker-pan/</link><description>write ones</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 04:33:34 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 04:33:34 GMT</pubDate><ttl>60</ttl><item><title>Cactus Servlet Test in Tomcat6(Servlet調試與測試)</title><link>http://www.blogjava.net/joker-pan/archive/2010/03/05/314588.html</link><dc:creator>java學海無涯</dc:creator><author>java學海無涯</author><pubDate>Fri, 05 Mar 2010 05:22:00 GMT</pubDate><guid>http://www.blogjava.net/joker-pan/archive/2010/03/05/314588.html</guid><wfw:comment>http://www.blogjava.net/joker-pan/comments/314588.html</wfw:comment><comments>http://www.blogjava.net/joker-pan/archive/2010/03/05/314588.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/joker-pan/comments/commentRss/314588.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/joker-pan/services/trackbacks/314588.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 最近在研究Servlet，JSP的Test <br />
&nbsp;&nbsp;&nbsp; 一、如果僅僅調試，而非測試，可以在eclipse裡，先選擇要調試的servlet，右鍵菜單<br />
debug==&gt;debug configuring， new 一個remote debug配置，保持默認即可調試：<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/joker-pan/remote.JPG" alt="" border="0" height="598" width="572" /><br />
&nbsp;然後，切換eclipse 到debug perspective(調試工作台)後，在Server 裡選tomcat 啟動為debug模式<img src="http://www.blogjava.net/images/blogjava_net/joker-pan/Rundebug.JPG" alt="" border="0" /><br />
現在可以在你的Servlet裡增加一個斷點，在瀏覽器裡輸入此Servlet的路徑(即web.xml裡的&lt;url-pattern後的路徑<br />
，如http://localhost:8080/web-cactus/servlet/FirstServlet)，當執行到這個斷點，系統會停在這兒:<br />
<img src="http://www.blogjava.net/images/blogjava_net/joker-pan/debugservlet.JPG" alt="" border="0" height="552" width="800" /><br />
<br />
<br />
二、&nbsp;&nbsp; Cactus 是一個可以用來做servlet測試(不是調試)的東東，查了半天才搞明白：<br />
1、下載它：<a title="http://jakarta.apache.org/site/downloads/downloads_cactus.cgi" id="cactusdown" target="_blank" href="http://jakarta.apache.org/site/downloads/downloads_cactus.cgi">http://jakarta.apache.org/site/downloads/downloads_cactus.cgi</a><br />
2、還要下載相關的一個commons-codec：<a title="http://commons.apache.org/codec/download_codec.cgi" id="codecdown" href="http://commons.apache.org/codec/download_codec.cgi">http://commons.apache.org/codec/download_codec.cgi</a><br />
3、tomcat 配置:<br />
<code>復制這幾個JAR[tomcat-root]/common/lib</code>:(在解壓後的文件夾lib中)
<ul>
    <li>
    <code>cactus.jar</code>
    </li>
    <li>
    <code>commons-httpclient.jar</code>
    </li>
    <li>
    <code>commons-logging.jar</code>
    </li>
    <li>
    <code>junit.jar</code>
    </li>
    <li>
    <code>aspectjrt.jar</code></li>
</ul>
<code>[tomcat-root]/conf/web.xml</code> 增加這幾行, after the <code>&lt;webapp&gt;</code> tag:
<div>
<pre>&lt;servlet&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-name&gt;ServletRedirector&lt;/servlet-name&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-class&gt;org.apache.cactus.server.ServletTestRedirector&lt;/servlet-class&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;init-param&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;param-name&gt;param1&lt;/param-name&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;param-value&gt;value1 used for testing&lt;/param-value&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;/init-param&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;/servlet&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-name&gt;ServletTestRunner&lt;/servlet-name&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-class&gt;org.apache.cactus.server.runner.ServletTestRunner&lt;/servlet-class&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;/servlet&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
當然還有mapping:<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</pre>
</div>
<br />
<div>
<pre>&lt;servlet-mapping&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-name&gt;ServletRedirector&lt;/servlet-name&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;url-pattern&gt;/ServletRedirector&lt;/url-pattern&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;/servlet-mapping&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-mapping&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;servlet-name&gt;ServletTestRunner&lt;/servlet-name&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;url-pattern&gt;/ServletTestRunner&lt;/url-pattern&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
&lt;/servlet-mapping&gt;<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</pre>
</div>
<br />
<pre>4.在eclpise裡，建立一個測試用web Project :web-cactus，建立package:org.cactusturtor.servlet</pre>
把測試用servlet從解壓後的cactus-1.8.1-bin\samples\servlet\src\main\java\org\apache\cactus\sample\servlet\SampleServlet.java,復制到這個包裡，改下第一行的包名為：package org.cactusturtor.servlet;<br />
<br />
5.建立package:test.org.cactusturtor.servlet,把測試client servlet從解壓後的cactus-1.8.1-bin\samples\servlet\src\test\java\org\apache\cactus\sample\servlet\TestSampleServet.java,復制後改第一包名為：package test.org.cactusturtor.servlet;<br />
<br />
6.再把cactus-1.8.1-bin\samples\servlet\src\main\webapp\WEB-INF\cactus-report.xsl復制到項目的webroot裡，<br />
在查看執行結果時要用到這個文件去顯示<br />
<br />
7.再在webroot下建個文件夾test,裡面建個test.jsp,有一個test就是查這個JSP文件能否返回(裡必須有一個正文是：Hello !)<br />
參考TestSampleServlet.java,即endRequestDispatcherForward()裡的這一行會檢查：<br />
assertTrue("Text missing 'Hello !' : [" + theResponse.getText() + "]", <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; theResponse.getText().indexOf("Hello !") &gt; 0);<br />
<br />
至此終於准備完成了，測一下吧：<br />
發布WebAPP-&gt;啟動 tomcat,在網面裡輸入此路徑來看測試結果(這個結裡是ServletTestRunner產生的)：<a title="http://localhost:8080/web-cactus/ServletTestRunner?suite=test.org.cactusturtor.servlet.TestSampleServlet&amp;xsl=cactus-report.xsl" href="http://localhost:8080/web-cactus/ServletTestRunner?suite=test.org.cactusturtor.servlet.TestSampleServlet&amp;xsl=cactus-report.xsl">http://localhost:8080/web-cactus/ServletTestRunner?suite=test.org.cactusturtor.servlet.TestSampleServlet&amp;xsl=cactus-report.xsl</a><br />
<img src="http://www.blogjava.net/images/blogjava_net/joker-pan/cactus.JPG" alt="" border="0" /><br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/joker-pan/aggbug/314588.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/joker-pan/" target="_blank">java學海無涯</a> 2010-03-05 13:22 <a href="http://www.blogjava.net/joker-pan/archive/2010/03/05/314588.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>