Problema ao rodar jsp + servlet

Olá pessoal, sou novato em java, to aprendendo agora. Fiz um programinha usando JSP + Servlet para listar o conteúdo de uma tabela no banco de dados. Mas está retornando um erro que eu não estou sabendo resolver. Se alguém poder me ajudar eu agradeço.

JSP:

<%@page import="javax.servlet.*"%>
<%@page import="javax.servlet.http.*"%> 

<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="conexao.ConexaoBD"%>


<html>
<head>
<title>Teste</title>
<body>
<% 
 ConexaoBD con = null;
 
 try {
    con = new ConexaoBD();
    
    String sql="select * from Email";
    ResultSet rs = con.executeQuery(sql);

	while (rs.next()){
            out.println(rs.getString("Email"));

    }
	
 } catch(SQLException e){
      out.println("Erro no SQL!"+e.getMessage());
      return;
   }
   finally {
      if (con!=null)
       con.fecharConexao();
       con=null;
   }
    
%>
</body>
</html>

Servlet:

package conexao;

import java.sql.*;

 public class ConexaoBD {
    private Connection connection;
    private Statement statement;

     public ConexaoBD(){
        try{
           String Hd=System.getProperty("user.dir");
           Hd+="\\emails.mdb";           
           String driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
           Class.forName(driverName);
           //connection = DriverManager.getConnection("jdbc:odbc:Driver=" +"{Microsoft Access Driver (*.mdb)};" + "DBQ="+Hd ,"",""); //usando acesso direto ao arquivo
           connection = DriverManager.getConnection("jdbc:odbc:teste","",""); //usando o obdc

        }catch(ClassNotFoundException ex){
           System.out.println("Não foi possível encontrar o driver");
        }catch(SQLException ex){
           System.out.println("Não foi possível conectar ao servidor");
        }

        try {
           statement = connection.createStatement();
        }catch(SQLException ex){
           System.out.println("Não foi possível conectar ao servidor");
        }
     }         


    public synchronized void executeUpdate(String update)throws SQLException {
       try{
          statement.executeUpdate(update);
       }catch(SQLException ex){
          System.out.println("Não foi possível executar o update");
       }
    }

    public synchronized ResultSet executeQuery(String query)throws SQLException {
       try{
          return statement.executeQuery(query);
       }catch(SQLException ex){
          System.out.println("Não foi possível executar a query");
          throw ex;
       }
    }

    public void fecharConexao(){
       try{
          statement.close();
       }catch(SQLException ex){
          ex.printStackTrace();
       }
     }
 }

Erro:

exception 

org.apache.jasper.JasperException
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NullPointerException
	conexao.ConexaoBD.<init>(conexaobd.java:25)
	org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:63)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Vc ta com um valor nulo dentro de ConexaoBD
deve ser System.getProperty(“user.dir”);
Rolava de vc debugar e ver a linha exata do erro!!!

Há isso porque eu tava usando o acesso direto ao banco de dados, mas o conection está comentado, estou tentando usar via odbc, mesmo comentando essas linhas System.getProperty(“user.dir”); o erro continua.

Se eu pegar esse mesmo código e colocar no eclipse em uma classe java, funciona direitinho. Mas rodando no servlet + jsp não vai

Pessoal, acho que deve ser algum problema que não seja de código, pois eu baixei a aplicação “farmacia” que está no portaljava, e ele deu o mesmo erro quando ele chama o con = new ConexaoBD();

Alguém sabe o que pode ser??

Pessoal, por favor, se alguém souber dá uma luz aí por favor.
Segue minhas variáveis de ambiente:

CATALINA_HOME
C:\Program Files\Apache Software Foundation\Tomcat 5.5
CLASSPATH
C:\Program Files\Java\jdk1.5.0_03;C:\Program Files\Java\jdk1.5.0_03\lib;C:\Program Files\Java\jdk1.5.0_03\bin;.;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;C:\Program Files\Java\jdk1.5.0_03\lib\servlet.jar;C:\Program Files\Java\jdk1.5.0_03\lib\tools.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar
JAVA_HOME
C:\Program Files\Java\jdk1.5.0_03
Path
C:\Program Files\Java\jdk1.5.0_03\bin;C:\Program Files\Java\jdk1.5.0_03;C:\Program Files\Borland\Delphi7\Bin;C:\Program Files\Borland\Delphi7\Projects\Bpl\;D:\php4;C:\orant\bin;C:\oradev\bin;c:\j2sdk1.4.2_04\bin;c:\compiere2\lib;D:\oracle\product\10.1.0\Db_1\bin;D:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin\client;D:\oracle\product\10.1.0\Db_1\jre\1.4.2\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\oradev\jdk\bin;C:\orant\jdk\bin;C:\Program Files\Mozilla Firefox\;C:\Program Files\Microsoft SQL Server\80\Tools\BINN

vai na classe conexaobd.java, na linha 25, lá vai ta o problema, q é uma referencia com o valor null.

Descobri o erro galera, obrigado mesmo assim pela ajuda.

O erro era que eu estava criando o ODBC em User DNS e o correto seria criar em System DNS

Putz… Penei… quase abandonei o Java :sad: :oops:

Não faz isso não garoto!! :grin:
As vezes a gente fica meio frustado quando não consegue fazer alguma coisa, eu particularmente sofro bastante com isso…, mas ai a gente se recomponhe se concentra de novo e vai embora!!..rs…
Desisti não!! :lol: