2009-04-23 90 views
0

在eclipse(Ganymede)下嘗試運行java servlet時出現問題,我正在運行Java 1.6和Apache Tomcat 6.0。運行servlet時出現問題

下面是我在做什麼:

  1. 停止Tomcat。
  2. 新動態webproject。
  3. 呼叫項目TestProject
  4. 使用默認選項:上下文= 「TestProject」,上下文目錄= 「的WebContent」,Java的源目錄= 「SRC」
  5. 右鍵單擊項目並選擇新的servlet
  6. 使用默認封裝和調用類「HelloTest」所有其他選項都是defult
  7. 更改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正在運行並提供頁面,並且我擁有正確的路徑。

+0

你有沒有試過把你的servlet放在包裏而不是缺省包?另外,你的servlet如何映射到web.xml文件? – pgb 2009-04-23 12:14:03

回答

2

首先檢查該類是否正確部署。 另請參閱this question

相關問題