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.