Bonjour,
Suite a une requête "Select" , tomcat 9 me renvoie une erreur 500.
Je ne sais pas encore décrypter les erreur 500 de tomcat, faut t'il regarder le fichier log du Tomcat 9.0.2. ??
voici l'erreur 500
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
État HTTP 500 – Internal Server Error
 
Type Rapport d''exception
 
message Erreur à l'instantiation de la classe servlet [Form_nom]
 
description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
 
exception
 
javax.servlet.ServletException: Erreur à l'instantiation de la classe servlet [Form_nom]
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:501)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
cause mère
 
java.lang.ClassNotFoundException: Form_nom
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
	org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
	org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:501)
	org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754)
	org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376)
	org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Thread.java:748)
note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de ce serveur.
 
Apache Tomcat/9.0.2
Ma servlet
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.boticiel.servlets;
 
 
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import com.boticiel.bdd.Noms;
import com.boticiel.beans.BeanException;
import com.boticiel.beans.Utilisateur;
 
 
/**
 * Servlet implementation class Test
 */
@WebServlet("/Form_nom")
public class Form_nom extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
 
    public Form_nom() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Noms tableNoms = new Noms();
        request.setAttribute("utilisateurs", tableNoms.recupererUtilisateurs());
        this.getServletContext().getRequestDispatcher("/WEB-INF/form_nom.jsp").forward(request, response);
    }
 
    public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
        Utilisateur utilisateur = new Utilisateur();
        try {
			utilisateur.setNom(request.getParameter("nom"));
		} catch (BeanException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        utilisateur.setPrenom(request.getParameter("prenom"));
 
        Noms tableNoms = new Noms();
        tableNoms.ajouterUtilisateur(utilisateur);
 
        request.setAttribute("utilisateurs", tableNoms.recupererUtilisateurs());
 
        this.getServletContext().getRequestDispatcher("/WEB-INF/form_nom.jsp").forward(request, response);
    }
Un morceau de mon bean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
       try {
            statement = connexion.createStatement();
 
            // Exécution de la requête
            resultat = statement.executeQuery("SELECT nom, prenom FROM noms;");
 
            // Récupération des données
            while (resultat.next()) {
                String nom = resultat.getString("nom");
                String prenom = resultat.getString("prenom");
 
                Utilisateur utilisateur = new Utilisateur();
                try {
					utilisateur.setNom(nom);
				} catch (BeanException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
                utilisateur.setPrenom(prenom);
 
                utilisateurs.add(utilisateur);
            }
        } catch (SQLException e) {
        } finally {
            // Fermeture de la connexion
            try {
                if (resultat != null)
                    resultat.close();
                if (statement != null)
                    statement.close();
plus + le loaddatabase
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
   private void loadDatabase() {
        // Chargement du driver
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
        }
 
        try {
            connexion = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/javaee", "root", "");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
 
    public void ajouterUtilisateur(Utilisateur utilisateur) {
        loadDatabase();
 
        try {
            PreparedStatement preparedStatement = connexion.prepareStatement("INSERT INTO noms(nom, prenom) VALUES(?, ?);");
            preparedStatement.setString(1, utilisateur.getNom());
            preparedStatement.setString(2, utilisateur.getPrenom());
 
            preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }