Ciao a tutti. Vorrei costruire una piccola web application che effettui l'autenticazione di un utente. Nello specifico:
1.Una jsp con una form per la login che accetta i parametri user e pwd
2.ActionForm che recuperi i dati
3.Action che esegua una query sul db passando alla query soltanto la user della form, ed eseguire il controllo sulla pwd successivamente
4.Una jsp che stampi la user dell'utente + msg di benvenuto se questi era già registrato

Sto utilizzando mysql, ho importato in eclipse il driver relativo (connector-j) ed ho poi creato un pool di connessioni su struts-config:
codice:
<data-sources>
<data-source type="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
<set-property
property="driverClassName"
value="com.mysql.jdbc.Driver" />
<set-property
property="url"
value="jdbc:mysql://localhost:3306/azienda?autoReconnect=true" />
<set-property
property="username"
value="root" />
<set-property
property="password"
value="artemska" />
<set-property
property="maxActive"
value="10" />
<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 test" />
</data-source>
</data-sources>
Action:
codice:
package org.authentication;
import javax.servlet.http.*;
import javax.sql.DataSource;

import org.apache.struts.action.*;
import org.connessione.LoginForm;

import java.sql.*;

public class AuthenticationAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
			HttpServletResponse response)throws Exception{
		
		LoginForm parametri=(LoginForm) form;
		String userName=parametri.getUserName();
		String password=parametri.getPassword();
		
		DataSource dataSource=null;
		java.sql.Connection myConnection=null;
		try
		{
		dataSource = getDataSource(request,"azienda");
		myConnection = dataSource.getConnection();
		Statement stmt=myConnection.createStatement();
		
		ResultSet rst=stmt.executeQuery("SELECT user FROM utenti WHERE user='"+ userName + "'" );
		
		if (rst!=null){
			request.setAttribute("message", parametri.getUserName());
		
	
		}else{
			return mapping.findForward("no");
		}
		}
		catch(SQLException e)
		{
		}
		finally {
			
			myConnection.close();
		}
			
		return mapping.findForward("ok");
		}

	private DataSource getDataSource(HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}
}
Quando runno l'applicazione ed inserisco il campo user, viene fuori l'errore:
codice:
HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: java.lang.NullPointerException
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


root cause 

java.lang.NullPointerException
	org.authentication.AuthenticationAction.execute(AuthenticationAction.java:42)
	org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717
Dove sbaglio?