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 :

Etat HTTP 500 - java.lang.NullPointerException


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Bonjour,

    J'ai créé une JSP d'authentification qui gère la connexion avec un login et d'un password à l'application JEE et je vérifie que le login et le password entrés se trouvent dans la table 'user' de ma base de données 'sitdeco'.

    Quand j'exécute (sous Tomcat 7 avec Eclipse Luna) l'interface est là mais quand j'essaye de m'authentifier l'erreur suivant est lancée
    Etat HTTP 500 - java.lang.NullPointerException
    Et voilà ce qui s'affiche dans la console :
    Jan 11, 2014 4:57:45 AM org.apache.catalina.core.AprLifecycleListener init
    Infos: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\MySQL\MySQL Utilities 1.3.5\;C:\Program Files\Java\jdk1.6.0_20\bin\;C:\Users\You Rin\Downloads\Compressed\eclipse;;.
    Jan 11, 2014 4:57:45 AM org.apache.tomcat.util.digester.SetPropertiesRule begin
    Avertissement: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:test' did not find a matching property.
    Jan 11, 2014 4:57:45 AM org.apache.coyote.AbstractProtocol init
    Infos: Initializing ProtocolHandler ["http-bio-8080"]
    Jan 11, 2014 4:57:45 AM org.apache.coyote.AbstractProtocol init
    Infos: Initializing ProtocolHandler ["ajp-bio-8009"]
    Jan 11, 2014 4:57:45 AM org.apache.catalina.startup.Catalina load
    Infos: Initialization processed in 397 ms
    Jan 11, 2014 4:57:45 AM org.apache.catalina.core.StandardService startInternal
    Infos: Démarrage du service Catalina
    Jan 11, 2014 4:57:45 AM org.apache.catalina.core.StandardEngine startInternal
    Infos: Starting Servlet Engine: Apache Tomcat/7.0.47
    Jan 11, 2014 4:57:45 AM org.apache.coyote.AbstractProtocol start
    Infos: Starting ProtocolHandler ["http-bio-8080"]
    Jan 11, 2014 4:57:45 AM org.apache.coyote.AbstractProtocol start
    Infos: Starting ProtocolHandler ["ajp-bio-8009"]
    Jan 11, 2014 4:57:45 AM org.apache.catalina.startup.Catalina start
    Infos: Server startup in 376 ms
    Problème de pilote
    Jan 11, 2014 4:57:53 AM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: Servlet.service() for servlet [jsp] in context with path [/test] threw exception [java.lang.NullPointerException] with root cause
    java.lang.NullPointerException
    at bdd.connexion.Lire(connexion.java:44)
    at org.apache.jsp.PageAdmin_jsp._jspService(PageAdmin_jsp.java:184)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    Voilà le code de la jsp 'PageAdmin':
    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
    <%@page import="bdd.connexion"%>
    <%@page import="uuu.user"%>
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!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=ISO-8859-1">
    <!-- refresh toutes les 60 secondes -->
    <title>Acceuil</title>
     
    <style>
    <!--
    .text
    {
    background-color:white;
    color:#413C3C;
            -moz-border-radius: 30px;
            -webkit-border-radius: 0px;
            border-radius:5px;
            width:80%;
            margin-top: 0%;
            margin-bottom: 2%;
            margin-left:0%;
            margin-right:0%;
    }
    .text:hover
    {
    background-color: #FFD9DF;
    }
    -->
    </style>
     
    </head>
     
    <body background="images//dec.jpg">
    <%@ include file="date.jsp" %>
    <%! connexion cnx; String res;%>
     
        <form action="" method="post">
        <div style="position: absolute; top: 200px; right:510px">
        <table align="center" frame="above"style="color:#413C3C">
               <tr><th colspan="2" align="center">Connexion</th></tr>
               <tr><th>Login : </th><td><input type="text" name="login" style="width:9.5em"  class="text"/></td></tr>
               <tr><th>Password : </th><td><input type="password" name="password" style="width:9.5em"  class="text" /></td></tr>
     
               <tr></tr><tr></tr><tr></tr><tr></tr>
    <tr>
    <td><input type="submit" value="Connect" style="width:7em; height:2em; margin-left:5em;"></td>
    <td><input type="reset" value="Reset" style="width:7em; height:2em"></td>
    </tr>
     
        </table>
        </div>
        </form>
     
    <%
    if(request.getParameter("login")!=null && request.getParameter("password")!=null )
    {
            cnx = new connexion("sitedeco");
            String lg = request.getParameter("login");
            String pass = request.getParameter("password");
     
                cnx.Lire("select * from `user` where userLogin='"+lg+"' and userPassword='"+pass+"'");
     
                while(cnx.Suiv())                     
                {
                            user uu = new user(cnx.getrs().getString(1),cnx.getrs().getString(2),cnx.getrs().getString(3),cnx.getrs().getString(4),cnx.getrs().getString(5));
     
                            if(uu.getUser_state()=="active" )
                                    {
                                          request.getSession().setAttribute("user",uu);
                                          request.getRequestDispatcher("NewFile.jsp").forward(request, response);  
                                    }        
                }
    }
    %>
    </body>
    </html>
    Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    Jan 11, 2014 4:57:53 AM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: Servlet.service() for servlet [jsp] in context with path [/test] threw exception [java.lang.NullPointerException] with root cause
    java.lang.NullPointerException
    at bdd.connexion.Lire(connexion.java:44)
    Peut-on voir Connexion.java ?

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    java.lang.NullPointerException
    at bdd.connexion.Lire(connexion.java:44)
    connexion.java, ligne 44, tu tente d'appeler une méthode sur une variable ou un champ qui est null, c'est là qu'il faut regarder.

    Accessoirement, en Java, les noms de méthodes devraient commencer par une minuscule (donc lire et pas Lire) et les nom de classe par une majuscule (donc Connexion et pas connexion).

  4. #4
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    Merci pour vos réponse mais vraiment je ne trouve aucune erreur dans la méthode lire de la classe Connexion, parce que quand j'essaye d'exécuter à partir d'une classe java, ça marche mais dans les JSP ça marche pas.
    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
    package bdd;
     
    import java.sql.*;
     
    public class Connexion {
     
       private Connection con;
       private Statement st;
       protected ResultSet rs;
       String DB="sitedeco";
     
          //Constructeur
         public Connexion(String DB) {  
             String url="jdbc:mysql://localhost/"+DB;                         //Définition de l’URL de connexion
             try {
                       Class.forName("com.mysql.jdbc.Driver");                //Chargement du pilote JDBC
                       con = DriverManager.getConnection(url, "root", "rootroot");    //Etablissement de la connexion
                       st = con.createStatement();                           /*Afin d’accéder ou de modifier les informations contenues dans la base de données, 
                                                                              il convient d’utiliser un objet de type Statement. 
                                                                              Une instance de cet objet est retournée par cette méthode*/ 
             }  
            catch (ClassNotFoundException e) {
             System.err.println("Problème de pilote");
            }
            catch (SQLException c) {
             System.err.println("Base de données non trouvée ou requête incorrecte");
            }
       }
     
       public void lire(String req) {                         //Selectionner la Base de Données
           try {
               rs=st.executeQuery(req);
               } catch (SQLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace(); 
                }
       }
     
       public void miseAJour(String req) {                   //Modifier la Base de Données
           try {
                st.executeUpdate(req);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
       }
     
       public void insert_user(String userName, String userLogin,
                String userPassword, String userRole, String userStatue) {
            try {
                st.executeUpdate( "insert into user(userName, userLogin, userPassword, userRole, userStatue) values('"+userName+"','"+userLogin+"','"+userPassword+"','"+userRole+"','"+userStatue+"')");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
     
       public boolean suiv() {
           try {
                return rs.next();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
       }
     
       public void fermer(){                                 // Fermer le connexion
           try {
                con.close();
            } catch (SQLException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
             }
       }
     
       public ResultSet getrs(){
           return rs;    
       }
    }

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    st est null, ce qui laisse supposer que tu as eu une exception ici

    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
    public Connexion(String DB) {  
             String url="jdbc:mysql://localhost/"+DB;                         //Définition de l’URL de connexion
             try {
                       Class.forName("com.mysql.jdbc.Driver");                //Chargement du pilote JDBC
                       con = DriverManager.getConnection(url, "root", "rootroot");    //Etablissement de la connexion
                       st = con.createStatement();                           /*Afin d’accéder ou de modifier les informations contenues dans la base de données, 
                                                                              il convient d’utiliser un objet de type Statement. 
                                                                              Une instance de cet objet est retournée par cette méthode*/ 
             }  
            catch (ClassNotFoundException e) {
             System.err.println("Problème de pilote");
            }
            catch (SQLException c) {
             System.err.println("Base de données non trouvée ou requête incorrecte");
            }
    Ce qui me laisse à supposer que tu dois avoir un message dans les logs qui va avec, probablement un truc te disant que le driver mysql n'existe pas

  6. #6
    Membre éclairé
    Femme Profil pro
    Etudiante
    Inscrit en
    Avril 2012
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Avril 2012
    Messages : 203
    Par défaut
    svp , je n'ai pas encore compris ce que je dois changer dans la classe Connexion
    est ce que vous pouvez encore expliquer

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/07/2010, 19h10
  2. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19
  3. Réponses: 8
    Dernier message: 11/05/2006, 19h32
  4. [JDIC]Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Par kedare dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 06/05/2006, 22h45
  5. java.lang.NullPointerException getparent()
    Par guano dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 17/03/2006, 17h38

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