Servlets e Mysql [RESOLVIDO]

0 respostas
J

Fala galera!!

Estou estudando servlets e fiz uma tela de login com jsp. Fiz um servlet que recebe os dados do form e utiliza um JavaBean, chamado userBean, para setar usuário e senha. Criei uma classe Dao que recebe o userBean do servlet. Na classe Dao através dos gests do bean eu recupero os dados de usuário e senha, com isto eu faço uma conexão com o banco e verifico a validade dos dados.
Source do servlet:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		 
		try{
		//recebo os valores contidos no formulário de login
		
		 String strLogin = req.getParameter("cmpLogin");
		 
		 String strPassword  = (String) req.getParameter("cmpPassword");
		
		 //instancio um objeto do tipo Dao para autenticar o usuário
		 clBaseDao userDao = new clBaseDao();
		 
		 //instancio um objeto do tipo bean para setar os parâmetros de senha e usuário
		 beanUser usuario = new beanUser();
		 
		 
		 //set dos parametros
		 usuario.setStrLogin(strLogin);
		 
		 usuario.setStrPassword(strPassword);

		 //passo para o dao o objeto usuário para autenticação
		 userDao.daoAutentica(usuario);
		 
		 //teste para verificar parâmetros
		 System.out.println("Login do servlet:" + strLogin);
		 
		 System.out.println("Password do servlet:" + strPassword);
		 
		 if((strLogin != null) && (strPassword != null) ){
			 
			 resp.sendRedirect("frmPesquisa.jsp");

		 }
		 else
			 System.out.println("Error");
	 
		}
		
		catch (Exception e) {
			// TODO: handle exception
		e.printStackTrace();
		}
	 }//doPost
Bom, para testar a conexão com o banco de dados, mysql, fiz uma classe chamada TestConnection.java nela contém o seguinte código:
public static void main(String[] args) throws SQLException {
		
		Connection connection = new ConnectionDb().getConnection();
		
		String sql = "Select * from tbllogin";
		
		PreparedStatement smt = (PreparedStatement) connection.prepareStatement(sql);
		
		ResultSet resultado = smt.executeQuery();

		while(resultado.next()){
			
			System.out.println
			(resultado.getString("Login") + " :: " + resultado.getString("Senha"));
		}
		
		connection.close();
		smt.close();
		resultado.close();
	}
Quando vou testar esta classe eu uso o recurso "Run as Java Aplication" do Eclipse e no console os dados são exibidos corretamente. Na classe ConnectionDb tem-se o seguinte código:
Connection conexao = null;

		public Connection getConnection() {
			
			System.out.println("Conectando ao banco");
			
			 try {

				 return DriverManager.getConnection("jdbc:mysql://localhost/bdteste", "root", "root123");
			 } 
			 catch(SQLException e) {
				 throw new RuntimeException(e);
		 }

Então criei um classe chamada buscaDao em que eu recebo os dados do servlet e executo a mesma tarefa. Eis o source:

public Boolean daoAutentica(beanUser usuario) throws SQLException {
		
		try {
			
			Connection connection = new ConnectionDb().getConnection();

			String sql = "Select * from tbllogin";
			
			PreparedStatement smt = (PreparedStatement) connection.prepareStatement(sql);
		
			ResultSet resultado = smt.executeQuery();

                                               //teste para saber se os dados foram transferidos com sucesso
			System.out.println("Login do Dao:" + usuario.getStrLogin());
			
			System.out.println("Password do Dao:" + usuario.getStrPassword());
			
			System.out.println("");
			
			while(resultado.next()){
			
				System.out.println
				(resultado.getString("Login") + " :: " + resultado.getString("Senha"));
			}
		
		connection.close();
		smt.close();
		resultado.close();
			
			System.out.println("Encerrando conexão com o banco");
			
			connection.close();
		} 
		
		
		catch (Exception e) {
			// TODO: handle exception
			
			System.out.println("Erro no Dao");
			
			e.printStackTrace();
			
		}
		return null;
		
		
	}
No entando quando digito a senha e o login na jsp e executo aparece o seguinte erro:

Conectando ao banco
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/bdtest
at classes.ConnectionDb.getConnection(ConnectionDb.java:24)
at classes.clBaseDao.main(clBaseDao.java:16)
at servlets.svlAutentica.doPost(svlAutentica.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/bdtest
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at classes.ConnectionDb.getConnection(ConnectionDb.java:21)
... 16 more
Onde estou errando ?!

Vlw
xe
O problema estava no TomCat, eu não havia copiado o .jar do mysql para dentro do lib do conteiner. Como eu havia adicionado o jar para o projeto quando eu executava em Java Aplication ele funcionava, mas como no TomCat não tinha o jar então dava o erro !!! Obrigaddoo

Criado 26 de novembro de 2010
Respostas 0
Participantes 1