J2ee - Erreur dans mon code

Résolu/Fermé
mero - Modifié par @ntoine le 8/03/2013 à 18:57
 mero - 8 mars 2013 à 23:32
Bonjour,


Je suis débutant en J2EE et je travaille sur un environnement Tomcat 7.0.37/Eclipse, j'ai créé un Servlet Test qui affiche le login et le mot de pass à l'aide d'un fichier xml nommé "web.xml". Mais si je lance "http://localhost:8080/dynamique" et quand je rempli le formulaire et l'envoye je rencontre l'erreur suivant :
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: La classe web.servl n'est pas une servlet
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

cause mère

java.lang.ClassCastException: web.servl cannot be cast to javax.servlet.Servlet
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.37.



voila mes code : pour le code index.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login" method="post" /><br/>
login:<input type="text" name="login" /><br/>
password:<input type="text" name="login" /><br/>
<input type="submit" name="do" value="send">
</form>
</body>
</html>
le codeweb.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>servl</servlet-name>
<servlet-class>web.servl</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servl</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>


le code servlet.java


/**
*
*/
package web;


import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* @author user1
*
*/
public class servl {

public void init()
{}
protected void doPst(HttpServletRequest req,HttpServletResponse resp)
throws ServletException, IOException
{
String l=req.getParameter("login");
String p=req.getParameter("pass");
PrintWriter pr=resp.getWriter();
pr.println("<html><body>");
pr.println("votre login est:"+l +"<br />");
pr.println("votre mot de pass est:"+p +"<br />");
pr.println("</body></html>");

}
public void destroy()
{}

}




besoin de vous aide! merci d'avance
A voir également:

2 réponses

arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
8 mars 2013 à 21:00
Essayez d'écrire plutôt :

public class servl extends HttpServlet
0
ah we ca marche !!merci ^^ mais il reste un petit problem quand je remplie le formulaire cette fois un autre messag apparu dont
type Rapport d''état

message La méthode HTTP POST n''est pas supportée par cette URL

description La méthode HTTP spécifiée n''est pas autorisée pour la ressource demandée.
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
Modifié par arth le 8/03/2013 à 22:54
Il semble y avoir une erreur ici

protected void doPst(HttpServletRequest req,HttpServletResponse resp)

Il manque un O dans doPost

Le loup, solitaire et mystérieux.
0
we ca marche merci boucoup !!!
0