Boa noite galera! não sei mais o que faço com esse problema!!!
nesse projeto tenho o driver msql-connector… na pasta web-inf/lib adicionado, fiz uma classe para testar a conexão e inserção de dados e gravou de boa, agora quando tento salvar um contato atraves de uma servlet da esse problema HTTP Status - 500… na pagina e esse erro que segue abaixo no console do eclipse. Alguém pode me ajudar!!!
20/09/2011 16:23:46 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet AdicionaContatoServlet threw exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:11)
at br.com.caelum.jdbc.dao.ContatoDAO.(ContatoDAO.java:14)
at br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:49)
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:857)
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/fj21
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:9)
… 15 more
E-mail:
Endereço:
Data Nascimento:
view plaincopy to clipboardprint?
package br.com.caelum.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String dataEmTexto = request.getParameter("DataNascimento");
Calendar dataNascimento = null;
//Fazendo a conversão da data
try {
Date date = new SimpleDateFormat("dd/MM/yyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
} catch(ParseException e) {
out.println("Erro de conversão da data");
return; //Para a execução do método
}
//Mostra um objeto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
contato.setDataNascimento(dataNascimento);
//Salva o contato
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
// imprime o nome do contato que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Contato " + contato.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}
}
Fabrica de conexão
view plaincopy to clipboardprint?
package br.com.caelum.jdbc;
import java.sql.*;
public class ConnectionFactory {
public Connection getConnection() {
try {
System.out.println("Connect to database...");
return DriverManager.getConnection("jdbc:mysql://localhost/fj21", "root", "");
} catch(SQLException sqlException) {
throw new RuntimeException(sqlException);
}
}
}
objeto DAO
view plaincopy to clipboardprint?
package br.com.caelum.jdbc.dao;
import java.sql.;
import java.sql.Date;
import java.util.;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDAO {
//Coneção com o banco de dados
private Connection connection;
//Fabrica a conexão com o banco mysql
public ContatoDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "INSERT INTO contatos(nome, email, endereco, dataNascimento) VALUES(?,?,?,?)";
try {
//Objeto para Inserção no banco PreparedStatement passando a string sql
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date( contato.getDataNascimento().getTimeInMillis()) );
stmt.execute();
stmt.close();
System.out.println("Contato adicionado.");
} catch(SQLException sqlException) {
throw new RuntimeException(sqlException);
}
}
}
MEU WEB.XML
view plaincopy to clipboardprint?