0
在eclipse(Ganymede)下嘗試運行java servlet時出現問題,我正在運行Java 1.6和Apache Tomcat 6.0。運行servlet時出現問題
下面是我在做什麼:
- 停止Tomcat。
- 新動態webproject。
- 呼叫項目TestProject
- 使用默認選項:上下文= 「TestProject」,上下文目錄= 「的WebContent」,Java的源目錄= 「SRC」
- 右鍵單擊項目並選擇新的servlet
- 使用默認封裝和調用類「HelloTest」所有其他選項都是defult
- 更改URL映射到/你好
的代碼,該servlet如下(我只編輯的doGet和doPost方法一切是屬TED):
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloTest
*/
public class HelloTest extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloTest() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.write("Hello World");
writer.flush();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
這裏是我嘗試運行項目: 1.保存項目 2.右鍵單擊該項目並選擇在服務器上運行。 3.選擇現有的Tomcat服務器 4.單擊完成。
當我試圖瀏覽到http://localhost:8080/TestProject/hello 我收到一個異常,說該類未找到。
javax.servlet.ServletException: Wrapper cannot find servlet class HelloTest or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)
根源
java.lang.ClassNotFoundException: HelloTest
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
我做錯什麼了嗎?
如果我添加一個名爲test.jsp的.jsp頁面,它會完美顯示,所以我知道Tomcat正在運行並提供頁面,並且我擁有正確的路徑。
你有沒有試過把你的servlet放在包裏而不是缺省包?另外,你的servlet如何映射到web.xml文件? – pgb 2009-04-23 12:14:03