J2ee - Erreur dans mon code

Résolu
mero -  
 mero -
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

2 réponses

  1. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    Essayez d'écrire plutôt :

    public class servl extends HttpServlet
    0
    1. mero
       
      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
  2. arth Messages postés 84 Date d'inscription   Statut Contributeur Dernière intervention   1 296
     
    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
    1. mero
       
      we ca marche merci boucoup !!!
      0