2009-04-23 4 views
0

Je rencontre un problème lors de la tentative d'exécution d'une servlet Java sous eclipse (Ganymede), Java 1.6 et Apache Tomcat 6.0.Problème lors de l'exécution d'une servlet

Voici ce que je fais:

  1. Arrêtez Tomcat.
  2. Nouveau projet Web dynamique.
  3. Appelez le projet TestProject
  4. Utilisez les options par défaut: Context = "TestProject", Contexte Répertoire = "WebContent", source Java Directory = "src"
  5. Faites un clic droit sur le projet et sélectionnez Nouveau servlet
  6. Utiliser par défaut package et appeler la classe « HelloTest » toutes les autres options sont defult
  7. Change Mapping URL/bonjour

le code de la servlet est la suivante (je ne l'ai édité le tout de doGet et doPost autre est genre 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); 
    } 

} 

Voici comment je tente de lancer le projet: 1. Enregistrez le projet 2. Faites un clic droit sur le projet et sélectionnez Exécuter sur le serveur. 3. Sélectionnez le serveur Tomcat existant 4. Cliquez sur Terminer.

Lorsque j'essaie de naviguer vers http://localhost:8080/TestProject/hello Je reçois une exception disant que la classe n'a pas été trouvée.

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) 

causes profondes

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) 

que je fais quelque chose de mal? Si j'ajoute une page .jsp appelée test.jsp, elle s'affiche parfaitement, donc je sais que Tomcat fonctionne et sert des pages et que j'ai le bon chemin.

+0

Avez-vous essayé de mettre votre servlet dans un paquet au lieu du paquet par défaut? De même, comment votre servlet est-elle mappée sur le fichier web.xml? – pgb

+1

Poject n'était pas configuré pour générer automatiquement. Menu> Projet> Créer automatiquement. –

Répondre

2

Vérifiez d'abord si la classe est correctement déployée. Voir également this question.

Questions connexes