Erreur 500 : Le serveur a rencontré une erreur [Fermé]

Signaler
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013
-
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013
-
Bonjour,

j'ai rencontrer lors de l'exécution de mon projet une erreur interne (500)

Voici mon script t l'erreur et exactement dans la ligne 47

Donnees_login.java

package modele;
 
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
 
 
 
public class Donnees_Login {
    private Connection con=null;
    private PreparedStatement st=null;
    private ResultSet rs=null;
 
 
    public Donnees_Login() {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            con=DriverManager.getConnection("jdbc:mysql://localhost:8080/banque","","");
        }
        catch(ClassNotFoundException ex)
        {
            System.out.println("Probleme de pilote base de donnèes");
            System.out.println(ex.getMessage());
        }
        catch(SQLException ex)
        {
            System.out.println("Probleme de connexion ou de requetes");
            System.out.println(ex.getMessage());
        }
 
 
    }
 
 
 
 
    public ArrayList<Login> RechercheUser(String user, String passe)
    {
         ArrayList <Login> liste=new ArrayList<Login>();
        try
        {
            st=con.prepareStatement("select * from login where utilisateur=? and mpasse=?");
            st.setString(1,user);
            st.setString(2, passe);
 
            rs=st.executeQuery();
            while(rs.next())
            {
                Login l=new Login();
 
                l.setNuml(rs.getInt("numl"));
                l.setNomprenom(rs.getString("nomprenom"));
                l.setUtilisateur(rs.getString("utilisateur"));
                l.setMpasse(rs.getString("mpasse"));
                l.setNiveau(rs.getInt("niveau"));
                liste.add(l);
 
            }
 
        }
        catch(SQLException ex)
        {
            System.out.println(ex.getMessage());
        }
        return liste;
    }
 
 
 
}

Aidez-moi SVP!!!


2 réponses

Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013
1
bonsoir,
j'ai essayer de corriger l'erreur et exécuter correctement mais j'arrive pas car je suis débutante et je veux m'avancer a travers cette application alors je me demande si tu peut mieux m'aider s'il te plait car c'est très intéressant pour moi.
Merci d'avance!!
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
16301
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
7 avril 2021
2 817
Tu as filtré tes exceptions avec un try/catch mais sans rien faire d'autres qu'un affichage de l'erreur, du coup "con" ne s'initialise pas dans le constructeur Donnees_Login mais malgré ça tu continues quand même ton programme, qui va quand même planter tôt ou tard lorsque tu utilises "con" sur ton prepareStatement.

Commences donc par corriger tes erreurs d'initialisation en regardant les messages d'erreurs qui concernent ton constructeur, c'est à dire ta connexion à la base de données qui plante (mauvais nom d'utilisateur ?)
Messages postés
16301
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
7 avril 2021
2 817 >
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013

Ton prepareStatement est correct, le problème c'est que tu ne peux pas l'utiliser avec "con" alors que celui-ci n'a pas de valeur (il vaut null) puisque le connexion n'a pas réussi.
Il faut que tu regardes dans le log de ton serveur, tu y verras apparaître les messages d'erreurs que tu y a mis lorsque tu as fait "System.out.println" en particulier ceux qui détaillent l'exception qui a été levée, c'est à dire les "ex.getMessage"...
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013
1 >
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013

J'ai compris alors il faut que je modifie l'initialisation du "con" par la valeur null ou l'enlevé pour que ça marchera??
Messages postés
16301
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
7 avril 2021
2 817 >
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013

Non, ça ne suffira pas, parce que l'initialisation du "con" se fait dans le constructeur Donnees_Login qui plante, or quand tu as une erreur dans ton programme, tu fais un affichage System.out.println pour avoir le détail de cette erreur. Il faudrait donc que tu ailles lire cette erreur, pour savoir pourquoi ça plante, c'est à dire pourquoi la connexion ne s'est pas faite.

Une fois seulement que tu sauras pourquoi ça ne marche pas tu pourras envisager de corriger ceci ou cela, mais il faut d'abord que tu utilises ce message d'erreur, c'est à ça qu'il sert !
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013
1
Moi je trouve que le problème est sur la connexion avec la base de donné cad avec le driver: ("con=DriverManager.getConnection("jdbc:mysql://localhost:127.0.0.1/banque","","");")
car lorsque je lance le serveur tomcat,il m'affiche cette erreur:
description Le serveur a rencontré une erreur interne qui l'a empêché de satisfaire la requête.

exception

java.lang.NullPointerException
modele.Donnees_Login.RechercheUser(Donnees_Login.java:47)
controleur.TraiteLogin.doPost(TraiteLogin.java:65)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Messages postés
16301
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
7 avril 2021
2 817 >
Messages postés
16
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
30 août 2013

Bien sûr que c'est sur cette ligne là, je n'arrête pas de le dire !
C'est d'ailleurs parce qu'il y a cette erreur que tu as "con" qui vaut null d'où le NullPointerException

Mais vu ton code, puisque tu as une erreur sur cette ligne là, tu devrais avoir dans ton fichier log le message "Probleme de connexion ou de requetes" que tu as affiché avec System.out.println, et surtout, ce qui nous intéresse, le ex.getMessage() qui détaille le problème.
Vas regarder, dans le fichier log, le détail de cette exception, parce que sinon tu ne sauras jamais qu'est-ce qui s'est mal passé, car là tu ne regardes un NullPointerException qui n'est qu'une erreur secondaire puisque tu as mal géré la première (ton try/catch avec un simple affichage n'est clairement pas pertinent ici).