[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:
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:
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:
myConnection = dataSource.getConnection();
Fichier Struts-config.xml
Code:
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.