O que estou fazendo de errado na minha servlet?

3 respostas
D

Boa noite,

Estou com um problema assim: Tenho uma Servlet que no método doGet() ele chama doTest() que irá montar uma página com o resultado, porém, ele não consegue conectar no Banco de Dados (dizendo que o driver da base de dados não foi encontrado!). No entanto, eu testei a conexão com a Base de Dados com um exemplo e esta ok!

Código da Servlet :

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

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


import UTIL.Conncetion_Interface;

/**
 * Servlet implementation class for Servlet: CentralServlet
 *
 */
 public class CentralServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet,Conncetion_Interface {
    /* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#HttpServlet()
	 */
	public CentralServlet() {
		super();
	}   	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		PrintWriter out = response.getWriter();
		try{
		doTest(request, response);
		}catch(SQLException sqlE){
			out.write("<HTML><BODY><PRE>Erro ao Executar o programa</PRE></BODY></HTML>");
		}
		
		
	}  	
	
	/* (non-Java-doc)
	 * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}   	
	
	protected void doTest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException,SQLException {
		// TODO Auto-generated method stub
		Connection conn;
		Statement stmt;
		PrintWriter out = response.getWriter();
		out.write("<HTML><BODY>");
		out.write("<PRE> Você esta conectado na Base de Dados com o IP : " + request.getRemoteAddr() + "</PRE><BR>");
		try
        {
				Class.forName("com.mysql.jdbc.Driver");
                out.write("<PRE>Driver Carregado!</PRE>");
                out.write("<BR>");
                
        }
        catch(java.lang.ClassNotFoundException e)
        {
                out.write("<FONT COLOR=\"RED\"><PRE>Erro na aplicação! O Driver do Base de Dados não foi encontrado!<BR>"+
                		"Desculpe o transtorno.</PRE></FONT>");
        }
        try
        {

// Abrindo a conexão com o servidor test
        	conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",USER,SENHA);

                stmt = conn.createStatement();

                // Criando a instrução a partir do SELECT que está dentro da variável query
                ResultSet rs = stmt.executeQuery("select * from exemplos");
                out.write("<PRE>");
                out.write("Resultado dos exemplos da Base de Dados:");
                
                // Fazendo um loop para mostrar tudo o que foi retornado do banco
                while (rs.next())
                {
                int ID = rs.getInt("ID");
                String Nome_Programa = rs.getString("Nome_Programa").concat(".java");
                String Exemplo = rs.getString("Exemplo");
       
                out.write("Numero ID : " + ID + "<BR>" + "Nome do Exemplo : " + Exemplo + "<BR>" + "Nome do Programa : " + Nome_Programa + "</BR>");
                }

                //Fechando a instrução e a conexão
                stmt.close();
                conn.close();
                out.write("</PRE>");
                out.write("</BODY></HTML>");
        }
                catch(SQLException ex)
        {
                	out.write("<HTML><BODY><PRE>Erro de SQL na aplicação!</PRE></BODY></HTML>");
        }
		
	}

Código do teste da Base de Dados:

package connection;

import interfaces.QueryInterface;

import java.sql.*;

import javax.swing.JOptionPane;

public class ConDBSQL implements QueryInterface{

        public static void main(String args[]) {

                // Criando as variáveis de conexão e de statement
                Connection con;
                Statement stmt;
                String query = "select Exemplo,Nome_Programa,Código  from exemplos";
                // Verificando se o driver JDBC está instalado e pode ser utilizado
                try
                {
                        Class.forName("com.mysql.jdbc.Driver");
                        JOptionPane.showMessageDialog(null,"Driver Carregado!","Aviso",2);
                        
                }
                catch(java.lang.ClassNotFoundException e)
                {
                        JOptionPane.showMessageDialog(null,"O Driver não foi Encontrado!\n"+ "ClassNotFoundException: " + e.getMessage(),"Erro",0);
                }

                try
                {

        // Abrindo a conexão com o servidor test
                	con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",user,password);

                        stmt = con.createStatement();

                        // Criando a instrução a partir do SELECT que está dentro da variável query
                        ResultSet rs = stmt.executeQuery(query);

                        System.out.println("Lista de linhas da tabela exemplos:");

                        // Fazendo um loop para mostrar tudo o que foi retornado do banco
                        while (rs.next())
                        {
                        String Exemplo = rs.getString("Exemplo");
                        String Nome_Programa = rs.getString("Nome_Programa").concat(".java");
                        String Cod_Programa = rs.getString("Código");
               
                        System.out.println("Nome do Exemplo : " + Exemplo + " \n" + "Nome do Arquivo : " +Nome_Programa + " \n" + Cod_Programa);
                        }

                        //Fechando a instrução e a conexão
                        stmt.close();
                        con.close();
                }
                        catch(SQLException ex)
                {
                        	JOptionPane.showMessageDialog(null,"Erro de SQL!\n"+ "SQLException: " + ex.getMessage(),"Erro",0);
                }
        }
}

Por favor, me ajudem.

Grato,

Douglas.

3 Respostas

C

Mostre para nós o erro.

B

Ola,

Verifique se o driver do mysql está no classpath quando vc distribui sua aplicação… ele deve ficar em yourWebApp/WEB-INF/lib.

B

Ola,

Verifique se o driver do mysql está no classpath quando vc distribui sua aplicação… ele deve ficar em yourWebApp/WEB-INF/lib.

Criado 12 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 3
Participantes 3