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:
- Arrêtez Tomcat.
- Nouveau projet Web dynamique.
- Appelez le projet TestProject
- Utilisez les options par défaut: Context = "TestProject", Contexte Répertoire = "WebContent", source Java Directory = "src"
- Faites un clic droit sur le projet et sélectionnez Nouveau servlet
- Utiliser par défaut package et appeler la classe « HelloTest » toutes les autres options sont defult
- 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.
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
Poject n'était pas configuré pour générer automatiquement. Menu> Projet> Créer automatiquement. –