Problemas na configuração do MySQL no TomCat

Olá pessoal,

Estou começando a estudar servlets, MySQL e TomCat, utilizo o eclipse. Já li muitos dos tutoriais do guj, que me ajudaram muito. Mas estou com um problema:

Eu consigo colocar um servlet simples no ar, também consegui conversar com o MySQL através do java usando o jdbc. Mas na hora que eu utlizo as duas coisas (servlet e mySql no tomCat) colocando um servlet que faz conexão com o banco de dados, o programa dá exception: NullPointer.

java.lang.NullPointerException MySQLTestes.comando(MySQLTestes.java:39) LoginBanco.doPost(LoginBanco.java:55) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

entao eu acredito que falte alguma referência do mySQL no TomCat, visto que o MySql roda no eclipse e um servlet sem conexão à banco também eu consigo rodar no TomCat.

Agradeço quem puder me ajudar!

Olá

O que tem na linha 39 desse fonte MySQLTestes.java?

tem uma conexão com o mySQL…

eu já testei a conexão em uma aplicação java comum e funcionou… o problema é quando eu rodo pelo tomCat no browser. Dá esse erro. Parece que tipo o tomCat não reconhece o jar do conector…

não sei se ficou claro a minha explicação…

Verifique se você não está passando parâmetros nulos na classe “comando”…

Por exemplo, executando uma Query com sentença vazia…

[quote=luis.txt]tem uma conexão com o mySQL…

eu já testei a conexão em uma aplicação java comum e funcionou… o problema é quando eu rodo pelo tomCat no browser. Dá esse erro. Parece que tipo o tomCat não reconhece o jar do conector…

não sei se ficou claro a minha explicação…[/quote]
Acho que se você passar o código que obtem a conexão com o MySQL ficaria mais fácil te ajudar.
Só com esse NullpointerException não dá para concluir nada.

o código é esse:

[code]
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLTestes{
public void comando(String str, PrintWriter pw) {
System.out.println(“Testando acesso a banco de dado MySQL\n\n”);
Connection conn = null;

       try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection( "jdbc:mysql://localhost/banco_itau?user=root&password=4545" );
            System.out.println("A conexão foi um sucesso\n");  
            Statement stm = conn.createStatement();  
            ResultSet rs = stm.executeQuery("select * from usuarios where agencia = \"255-0\"");
            while (rs.next()) {
                
                String agencia = rs.getString("agencia");
                String conta = rs.getString("conta");
                String nome = rs.getString("nome");
                String saldo = rs.getString("saldo");
                pw.println("Saldo: "+saldo);
                System.out.println("\nNome: " + nome + "\nAgência: " +agencia+ "  Conta: " + conta);
                System.out.println("\nSaldo: " + saldo);
                System.out.println("\n---------------------------------------");
                
            }
            System.out.println("\n\nConsulta realizada com sucesso!!!\n"); 
        } catch(ClassNotFoundException e) {
            System.out.println("excessão Classe não encontrada");
            e.printStackTrace();
        } catch(SQLException e) {
            System.out.println("SQL Exception... Erro na consulta:");
            e.printStackTrace();
        } finally {
            try {
                conn.close();
                System.out.println("\n\nFechamendo a conexão");
            } catch(SQLException erro) {
                System.out.println("Erro no fechamento");
                erro.printStackTrace();
            }
        }	       	        
   }	  

}[/code]

e este é o servlet que chama esta classe:

[code]
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginBanco extends HttpServlet {   
private MySQLTestes mySQL = new MySQLTestes();
  
   protected void doGet(HttpServletRequest request, HttpServletResponse response)   
         throws ServletException, IOException {   
      writeHeader(response);   
      writeForm(request, response);   
      writeFooter(response);   
   }   
  
   protected void doPost(HttpServletRequest request, HttpServletResponse response)   
   throws ServletException, IOException {   
     writeHeader(response);   
     writeForm(request, response);   
     PrintWriter pw = response.getWriter();   
     pw.println("<BR>");   
         
     String conta = request.getParameter("CONTA");   
     String agencia = request.getParameter("AGENCIA");  
     String senha = request.getParameter("SENHA"); 
            
     pw.println("Saldo Total Disponível: "); 
     mySQL.comando("SELECT * FROM usuarios WHERE agencia = \""+agencia+"\";",pw);
     
     writeFooter(response);   
   }   
      
   private final void writeHeader(HttpServletResponse response) throws IOException {   
      response.getWriter().println("<HTML><TITLE>::Login Banco da Praça::</TITLE><BODY>");   
   }   
   private final void writeFooter(HttpServletResponse response) throws IOException {   
      response.getWriter().println("</BODY></HTML>");   
   }   
      
   private final void writeForm(HttpServletRequest request, HttpServletResponse response)   
   throws IOException {   
      String agencia = request.getParameter("AGENCIA");   
      String conta = request.getParameter("CONTA");   
      String senha = request.getParameter("SENHA");      
      PrintWriter pw = response.getWriter();   
      pw.println("Digite seus dados para entrar: <br><br>");
      pw.println("agência / conta / senha <br>");
      pw.println("<FORM ACTION=\"login\" METHOD=\"POST\">");   
      pw.println("<INPUT TYPE=\"TEXT\" NAME=\"AGENCIA\" VALUE=\"\"" +((agencia != null) ? agencia : "") +"\"/>");   
      pw.println("<INPUT TYPE=\"TEXT\" NAME=\"CONTA\" VALUE=\"\"" +((conta != null) ? conta : "") +"\"/>");   
      pw.println("<INPUT TYPE=\"TEXT\" NAME=\"SENHA\" VALUE=\"\"" +((senha != null) ? senha : "") +"\"/>");   
      pw.println("<INPUT TYPE=\"SUBMIT\" VALUE=\"Entrar\"/>");   
      pw.println("</FORM>");   
   }	 

}[/code]

o código está compilando sem problemas, a classe de conexão tambem funciona se rodo em uma aplicação comum, e o servlet também funciona se eu tiro a linha que chama a classe com mySQL

obrigado pela ajuda!