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

Struts 1 Java Discussion :

[Débutant] Erreur java.lang.NullPointerException


Sujet :

Struts 1 Java

  1. #1
    Membre régulier Avatar de Kevin12
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 122
    Points : 74
    Points
    74
    Par défaut [Débutant] Erreur java.lang.NullPointerException
    J'ai un petit problème qui me fauit chier depuis quelques jours. Voici le message d'erreur que je reçois quand je tente de me connecter à ma base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    java.lang.NullPointerException
    	LoginAction.execute(LoginAction.java:27)
    	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
    Le code du programme :
    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
    public class LoginAction extends Action {
       public ActionForward execute(ActionMapping mapping, 
                                   ActionForm _form, 
                                   HttpServletRequest req, 
                                   HttpServletResponse res) throws Exception {
     
            // On traite la requête cliente
    	LoginForm form = (LoginForm) _form;
     
           javax.sql.DataSource dataSource= null;
           java.sql.Connection myConnection = null;
      try 
         {
           dataSource = getDataSource(req);
    //       if (dataSource==null) {
    //           return mapping.findForward("Erreur");
    //       }
    //       else{
    //           
           myConnection = dataSource.getConnection();
    //       }
               // faire ici le traitmement à  partir de la connexion.
         }
       catch (SQLException sqle) 
         {
                //...
         } 
       finally 
         {
              try
               {
                  if (myConnection != null){
                    myConnection.close();
                  }
               }
              catch (SQLException e)
               {
                 getServlet().log("Connection.close", e);
               }
          }     
            // On redirige vers la vue adaptée
    	return mapping.findForward("Connected");
       }
    }
    L'erreur vient de cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myConnection = dataSource.getConnection();
    Fichier Struts-config.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <data-sources>
    <!-- configuration for commons BasicDataSource -->
      <data-source key="FirstDataSource" type="org.apache.commons.dbcp.BasicDataSource">
        <set-property property="driverClassName" value="sun.jdbc.odbc.JdbcOdbcDriver" />
        <set-property property="url" value="jdbc:odbc:maBase" />
        <set-property property="username" value="user1" />
        <set-property property="password" value="pwd" />
        <set-property property="minCount" value="2"/>
        <set-property property="maxWait" value="5000" />
        <set-property property="defaultAutoCommit" value="false" />
        <set-property property="defaultReadOnly" value="false" />
        <set-property property="validationQuery" value="SELECT COUNT(*) FROM T_table" />
      </data-source>
    Pourtant quand je mets dans property="validationQuery" un nom de colone qui n'existe pas, le compilateur me le signale, ce qui veut dire qu'il voit au moins la base.

    Merci de m'éclairer un peu.

  2. #2
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    IL te dit qu'il ne voit pas ta colonne dans le validation query car il ne voit peut-etre pas ta base. En général dans validationquery on met une requete valide pour justement qu'il n'y ait pas d'erreur lorsque la connexion est bonne.

    Ton erreur est très simple. Datasource est null donc quand tu appelles la methode dessus l'erreur NullPointerException est retournée.

    SI datasource est null c'est qu'il ne trouve pas ta base. Pour cela plusieurs raison :
    • Test ceci plutot : dataSource = getDataSource(req, "FirstDataSource");
    • Url Incorrect
    • Login/mot de passe incorrect
    • Driver incorrect ou introuvable
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  3. #3
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    • Soit tu enlèves la propriété key dans la définition de ton dataSource parce qu'appemment elle n'a pas sa raison d'être.
    • Soit tu mets ça, comme l'a dit maxf1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataSource = getDataSource(req, "FirstDataSource");
    Scuse me while I kiss the sky ! Jimi Hendrix

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

Discussions similaires

  1. [Débutant] Erreur "java.lang.NullPointerException"
    Par cherche_java dans le forum Débuter avec Java
    Réponses: 12
    Dernier message: 29/01/2015, 15h44
  2. Erreur java. lang.NullPointerException
    Par hicham.gi dans le forum Struts 1
    Réponses: 17
    Dernier message: 03/06/2009, 11h11
  3. Réponses: 0
    Dernier message: 26/12/2007, 17h28
  4. Réponses: 32
    Dernier message: 20/04/2007, 21h56
  5. Probleme erreur java.lang.NullPointerException
    Par Tsukaasa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2006, 18h19

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