IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Erreur 500 générée lors connexion d'un utilisateur


Sujet :

Développement Web en Java

  1. #1
    Invité
    Invité(e)
    Par défaut Erreur 500 générée lors connexion d'un utilisateur
    Bonjour,

    J'ai un PPE en BTS SIO qui nous demande de créer une application en JEE avec une base de données SQL pour la gestion des visiteurs GSB avec différentes fonctionnalités. De mon côté, je dois une interface d'authentification d'utilisateur pour qu'il puisse se connecter à l'application. J'ai donc créé une servlet ServletAuthentification, un bean Utilisateur et une classe DAO UtilisateurDAO. Voici les codes nécessaires :

    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
    public class UtilisateurDAO {
     
        static PreparedStatement requete = null ;
        static ResultSet rs = null ;
        RequestDispatcher dispatcher ;
     
        public static Utilisateur seConnecter(Connection connexion, String loginSaisi, String mdpSaisi) {
            Utilisateur unUser = new Utilisateur() ;
     
            try {
                // Préparation de la requête
                requete = connexion.prepareStatement("SELECT * FROM UTILISATEUR WHERE UTI_LOGIN LIKE ?") ;
                requete.setString( 1, loginSaisi ) ;
                // Exécution de la requête
                rs = requete.executeQuery() ;
     
                if (rs != null) {
                    if (rs.next()) {
                        String rightLogin = rs.getString("UTI_LOGIN") ;
                        String rightMdp = rs.getString("UTI_MDP") ;
                        if ( (rightLogin.equals(loginSaisi)) && (rightMdp.equals(mdpSaisi)) ) {
                            unUser.setNom(rs.getString("UTI_NOM")) ;
                            unUser.setPrenom(rs.getString("UTI_PRENOM")) ;
                        } else {
                            System.out.println("Erreur d'authentification!");
                        }
                    }
                }  
            } catch (SQLException e) {
                e.printStackTrace() ;
            }
     
            return unUser;
        }
    }
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    public class ServletUtilisateur extends HttpServlet {
     
        Connection connexion = null ;
        static PreparedStatement requete = null ;
        static ResultSet rs = null ;
     
        @Override
        public void init() {
            ServletContext servletContext = getServletContext();
            connexion = (Connection) servletContext.getAttribute("connexion");
        }
     
        /**
         * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
         * methods.
         *
         * @param request servlet request
         * @param response servlet response
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        protected void processRequest(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=UTF-8");
            try (PrintWriter out = response.getWriter()) {
                /* TODO output your page here. You may use following sample code. */
                out.println("<!DOCTYPE html>");
                out.println("<html>");
                out.println("<head>");
                out.println("<title>Servlet ServletUtilisateur</title>");            
                out.println("</head>");
                out.println("<body>");
                out.println("<h1>Servlet ServletUtilisateur at " + request.getContextPath() + "</h1>");
                out.println("</body>");
                out.println("</html>");
            }
        }
     
        // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
        /**
         * Handles the HTTP <code>GET</code> method.
         *
         * @param request servlet request
         * @param response servlet response
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            processRequest(request, response);
        }
     
        /**
         * Handles the HTTP <code>POST</code> method.
         *
         * @param request servlet request
         * @param response servlet response
         * @throws ServletException if a servlet-specific error occurs
         * @throws IOException if an I/O error occurs
         */
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
     
            String URL = request.getRequestURI();
            Utilisateur unUser = new Utilisateur();
            //HttpSession session = request.getSession();
            RequestDispatcher dispatcher ;
     
            if (URL.equals("/GSB/login")) {
                // Récupération des valeurs saisies dans les champs du formulaire de connexion
                String identifiant = (String)request.getParameter("txt_login");
                String mdp = (String)request.getParameter("txt_mdp");
                // Appel de la fonction de connexion d'un utilisateur
                unUser = UtilisateurDAO.seConnecter(connexion, identifiant, mdp) ;
                // Redirection vers la page test.jsp
                getServletContext().getRequestDispatcher("/accueil.jsp").forward(request, response);
            }
     
            processRequest(request, response);
        }
     
        /**
         * Returns a short description of the servlet.
         *
         * @return a String containing servlet description
         */
        @Override
        public String getServletInfo() {
            return "Short description";
        }// </editor-fold>
     
    }
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    public class Utilisateur implements java.io.Serializable {
        private String matricule ; 
        private String nom ;
        private String prenom ;
        private String adresse ; 
        private String codePostal ;
        private String dateEmbauche ;
        private String login ;
        private String mdp ;
        private ArrayList<RapportVisite> listeRapport ; 
     
     
        public Utilisateur() {
        }
     
        public Utilisateur(String matricule, String nom, String prenom, String adresse, String codePostal, String dateEmbauche, String login, String mdp) {
            this.matricule = matricule;
            this.nom = nom;
            this.prenom = prenom;
            this.adresse = adresse;
            this.codePostal = codePostal;
            this.dateEmbauche = dateEmbauche;
            this.login = login;
            this.mdp = mdp;
        }
     
        public String getMatricule() {
            return matricule;
        }
     
        public void setMatricule(String matricule) {
            this.matricule = matricule;
        }
     
        public String getNom() {
            return nom;
        }
     
        public void setNom(String nom) {
            this.nom = nom;
        }
     
        public String getPrenom() {
            return prenom;
        }
     
        public void setPrenom(String prenom) {
            this.prenom = prenom;
        }
     
        public String getAdresse() {
            return adresse;
        }
     
        public void setAdresse(String adresse) {
            this.adresse = adresse;
        }
     
        public String getCodePostal() {
            return codePostal;
        }
     
        public void setCodePostal(String codePostal) {
            this.codePostal = codePostal;
        }
     
        public String getDateEmbauche() {
            return dateEmbauche;
        }
     
        public void setDateEmbauche(String dateEmbauche) {
            this.dateEmbauche = dateEmbauche;
        }
     
        public String getLogin() {
            return login;
        }
     
        public void setLogin(String login) {
            this.login = login;
        }
     
        public String getMdp() {
            return mdp;
        }
     
        public void setMdp(String mdp) {
            this.mdp = mdp;
        }
     
        public ArrayList<RapportVisite> getListeRapport() {
            return listeRapport;
        }
     
        public void setListeRapport(ArrayList<RapportVisite> listeRapport) {
            this.listeRapport = listeRapport;
        }
     
     
    }
    Voici mon problème :

    Lors de l'envoi des données du formulaire que voici :

    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
    <html>
        <head>
            <title>GSB - Authentification</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
        </head>
        <header>
            <%@include file="../includes/header.jsp" %>
            <br /><br /><br /><br /><br /><br />
        </header>
        <body>
            <fieldset>
                <legend>Authentification</legend>
                <form action="login" method="POST">
                    <table border="0">
                        <tr>
                            <td>Nom d'utilisateur*</td>
                            <td><input type="text" name="txt_login" size="30" required /></td>
                        </tr>
                        <tr>
                            <td>Mot de passe*</td>
                            <td><input type="password" name="txt_mdp" size="30" required /></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="Se connecter" /></td>
                        </tr>
                    </table>
                </form>
            </fieldset>
        </body>
        <footer>
            <%@include file="../includes/footer.jsp" %>
        </footer>
    </html>
    l'erreur 500 que voici :

    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
    type Rapport d''exception
     
    message
     
    description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.
     
    exception
     
    java.lang.NullPointerException
    	gsb.classes.UtilisateurDAO.seConnecter(UtilisateurDAO.java:27)
    	gsb.servlets.ServletUtilisateur.doPost(ServletUtilisateur.java:101)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    apparait. J'ai regardé d'où ça venait et apparement, c'est la variable connexion qui génère cette erreur. J'amerais savoir comment on peut régler cette erreur.

    Bien cordialement,

    trackeur14

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    gsb.classes.UtilisateurDAO.seConnecter(UtilisateurDAO.java:27)
    C'est quoi la ligne 27 de UtilisateurDAO ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Invité
    Invité(e)
    Par défaut
    La ligne 27 de UtilisateurDAO correspond à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = connexion.prepareStatement("SELECT * FROM UTILISATEUR WHERE UTI_LOGIN LIKE ?") ;

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Donc c'est connexion qui est null.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Donc c'est connexion qui est null.
    Oui et c'est à cause de ça que cette erreur apparaît.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Cette erreur concerne aussi cette ligne mais dans la servlet ServletUtilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unUser = UtilisateurDAO.seConnecter(connexion, identifiant, mdp) ;

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Quand je disais que connexion était null, c'était pour dire que connexion ne doit pas être null si tu veux que ton programme ne plante pas, donc faire ce qu'il faut qu'elle ne le soit pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Quand je disais que connexion était null, c'était pour dire que connexion ne doit pas être null si tu veux que ton programme ne plante pas, donc faire ce qu'il faut qu'elle ne le soit pas.
    Du coup, il ne faut pas l'initialiser à null?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Problème réglé car l'erreur venait de la connexion à la base de données MySQL, d'après les logs d'Apache Tomcat. En gros, l'application essayait de se connecter sur 'utilisateur'@'%' au lieu de 'utilisateur'@'adresseIPServeur'. J'ai donc testé en local et le problème n'est pas présent.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur xml générée lors de mon script php
    Par NicoO_O dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2009, 16h28
  2. Erreur 500 lors d'une requête http
    Par Sh4dow49 dans le forum Langage
    Réponses: 2
    Dernier message: 30/10/2008, 11h47
  3. [Sybase] Erreur 500 lors de la connexion à une BD sybase
    Par rbrigot dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/06/2007, 07h56
  4. [SQL-Server] Erreur 500 lors d'un script php avec sql
    Par DeusDavid dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/12/2006, 18h47
  5. erreur 18452 Echec de la connexion de l'utilisateur 'sa'
    Par TsuriKomiGoshi dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/09/2005, 08h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo