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.
Le code du programme :
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)
L'erreur vient de cette ligne.
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"); } }
Fichier Struts-config.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part myConnection = dataSource.getConnection();
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.
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>
Merci de m'éclairer un peu.
Partager