2009-04-23 15 views
0

Beim Versuch, ein Java-Servlet unter Eclipse (Ganymede) auszuführen, sehe ich ein Problem. Ich verwende Java 1.6 und Apache Tomcat 6.0.Problem beim Ausführen eines Servlets

Hier ist, was ich tue:

  1. Stopp Tomcat.
  2. Neues dynamisches Webprojekt.
  3. Rufen Sie das Projekt Testproject
  4. Verwendung von Standardoptionen: Kontext = "Testproject" Context Directory = "WebContent", Java Source Directory = "src"
  5. Direkt am Projekt klicken und neue Servlet
  6. Standard verwenden wählen Paket und rufen die Klasse „HelloTest“ alle anderen Optionen sind defult
  7. ändern URL Mapping/hallo

der Kodex für das Servlet ist wie folgt (ich habe nur die doGet und doPost Methoden alles andere bearbeitet ist Gattungen 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); 
    } 

} 

Hier ist, wie ich versuche, das Projekt auszuführen: 1. Speichern Sie das Projekt 2. Recht auf das Projekt klicken, und wählen Sie auf dem Server ausgeführt werden. 3. Wählen Sie den vorhandenen Tomcat-Server 4. Klicken Sie auf Fertig stellen.

Wenn ich versuche, zu http://localhost:8080/TestProject/hello zu suchen, erhalte ich eine Ausnahme, die besagt, dass die Klasse nicht gefunden wurde.

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) 

Ursache

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) 

mache ich etwas falsch?

Wenn ich eine .jsp-Seite namens test.jsp hinzufüge, wird sie perfekt angezeigt, daher weiß ich, dass Tomcat Seiten ausführt und bedient und dass ich den richtigen Pfad habe.

+0

Haben Sie versucht, Ihr Servlet in ein Paket anstelle des Standardpakets zu setzen? Wie ist Ihr Servlet in der Datei web.xml abgebildet? – pgb

+1

Das Projekt wurde nicht automatisch erstellt. Menü> Projekt> Automatisch erstellen. –

Antwort

2

Überprüfen Sie zuerst, ob die Klasse korrekt implementiert ist. Siehe auch this question.

Verwandte Themen