Problema com Tomcat

Bom dia Pessoal! sou iniciante em java…

estou desenvolvendo uma aplicação de login… criei 3 classes USUARIO, LOGON, CONEXAO.Segue abaixo o código de cada uma:

CONEXAO:

package Controle;

import java.sql.*;

public class Conexao {
  protected String pDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
  protected String StrConexao = "jdbc:odbc:Veterinaria";
  protected String StrUser = "";
  protected String StrSenha = "";
  Connection Conn = null;
  protected ResultSet rs;
    
  public Conexao(){
	  
  }
  
  public void Create(){
	  try {
			Class.forName(pDriver);
			Conn = DriverManager.getConnection(StrConexao, StrUser, StrSenha);
	  }
	  catch(ClassNotFoundException Erro){
			Erro.printStackTrace();
	  }
	  catch(SQLException Erro){ 	
		  System.out.println("Erro criando Conexao!");
		  Erro.printStackTrace(); 
	  }
  }
  
  public void Close(){
	  try{
			Conn.close();
	  }
	  catch(SQLException ErroClose){
		    System.out.println("Erro fechando Conexao!");
		    ErroClose.printStackTrace();
	 }
	  
  }

  public void Update(String pSQL){
	  try{
		  Statement Stm = Conn.createStatement();
		  Stm.executeUpdate(pSQL);
	  }
	  catch(SQLException ErroClose){
		    System.out.println("Erro criando STM!");
			ErroClose.printStackTrace();
	  }
	  
  }
  
  public void Select(String pSQL){
	  try{
		  Statement Stm = Conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		  rs = Stm.executeQuery(pSQL);
	  }
	  catch(SQLException ErroClose){
		    System.out.println("Erro criando STM!");
			ErroClose.printStackTrace();
	  }
	  
  }
  
  public void Mostrar(){
	  try{
	  while (rs.next()){
		  System.out.println(rs.getString("Login"));
		  System.out.println(rs.getString("Senha"));
	  }
	  }
	  catch(Exception E){
		  E.printStackTrace();
	  }
  }
  
  public ResultSet getRs(){
	  return rs;
  }

}

USUARIO:

package Controle;
import java.util.Date;

public class Usuario {
	protected String Login;
	protected String Senha;
	protected String Perfil;
	protected Date Acesso;
	
	public void setLogin(String pLogin){
		Login = pLogin;		
	}
	public void setSenha(String pSenha){
		Senha = pSenha;		
	}
	public void setPerfil(String pPerfil){
		Perfil = pPerfil;		
	}
	
	public String getLogin(){
		return Login;
	}
	public String getSenha(){
		return Senha;
	}
	public String getPerfil(){
		return Perfil;
	}
}

LOGON:

package Controle;
import java.sql.*;

public class Logon extends Usuario {
	
	protected Conexao CXN;	
	protected boolean Flag = false;
	protected ResultSet pRs;
	protected String Login;
	protected String Senha;
	protected String Perfil;
	String t;
	
	public Logon(){
		  CXN = new Conexao();
	}
	
	public boolean Validar(String pLogin, String pSenha){
		try{
			CXN.Create();
			String pSQL = "SELECT * FROM Usuarios WHERE (Login='" + pLogin + "') And (Senha='" + pSenha + "')";
			CXN.Select(pSQL);
			if (CXN.rs.first()== true) {
				Flag = true;
				super.setLogin(CXN.rs.getString("Login"));
				super.setPerfil(CXN.rs.getString("Perfil"));
			}
			else
			{
				Flag = false;
			}
        }
        catch(Exception erro){
        	erro.printStackTrace();
        }
    	CXN.Close();
    	return Flag;
	}
	
	public void SetPalavra(String pStr){
		 t = pStr;
	}
	public String getPalavra(){
		return t;
	}
	
}

o problema é o seguinte…criei uma classe de teste…e implementei um método Main para testar minhas classes…tudo funcionou normal!! quando coloquei as classes em uma pasta no Tomcat(C:\Tomcat 5.5\webapps\veterinaria\WEB-INF\classes\Controle) e criei um jsp para testar os objetos…nao funciona…ta dando erro. Segue abaixo o código JSP e a página de erro…

JSP(Login.jsp):


<%@  page import="Controle.*"%>

<%
	
	Logon Login = new Logon();

	boolean b = Login.Validar("Rodrigo", "casa");

	if (b == true){
		out.print("<p>Logado</p>");
	}
	else{
		out.println("<p>Não Logado</p>");
                 }
%>

ERRO(Tomcat):


HTTP Status 500 - 

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

type Exception report

message 

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

exception 

org.apache.jasper.JasperException: Exception in JSP: /Login.jsp:10

7: 	
8: 	Logon Login = new Logon();
9: 
10: 	boolean b = Login.Validar("Rodrigo", "casa");
11: 
12: 	if (b == true){
13: 	


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause 

java.lang.NullPointerException
	Controle.Conexao.Close(Conexao.java:33)
	Controle.Logon.Validar(Logon.java:36)
	org.apache.jsp.Login_jsp._jspService(Login_jsp.java:52)
	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:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

obrigadoo…

Não analisei o código inteiro, mas uma perguntinha que pode ser a solução

você colocou o arquivo .JAR do seu JDBC dentro do diretório WEB-INF/lib ??

— Editado —
Olhei o código rapidao e ví o problema.
Você deve deixar sua varíavel Connection como static, assim você terá apenas uma instancia dela.

Outra coisa, por padrão, nomes de métodos devem começar com a letra minuscula, assim como nome de objetos: por exemplo,

con.create(...

nao coloquei o arquivo jar…!!! onde eu encontro ele?(pergunta idiota aminha, desculpe sou iniciante!!)??

É o arquivo do Drive JDBC para sun.jdbc.odbc.JdbcOdbcDriver

ele deve estar em algum lugar ai :wink:, provavelmente no diretório do Tomcat, onde existem as LIBs, ou no JRE/lib/text (nao tenho tomcat aqui, nao posso olhar para voce)

qualquer coisa, procure no google também e faz o download desse driver

Controle.Conexao.Close(Conexao.java:33)

Por algum motivo, o Conn esta nulo no metodo Close.

Orbigado…to procurando o drive para download…

Abs,

Rodrigo Nunes

Obrigado pela ajuda pessoal…

eu mudei o caminho da minha string de conexao para

protected String StrConexao = “jdbc:odbc:DBQ=C:/Tomcat 5.5/Dados/veterinaria/BD_Vet.mdb;Driver={Microsoft Access Driver (*.mdb)}”;

agora funcionou…

Abs,

Rodrigo Nunes