Acompanhando a apostila FJ21, comecei a fzer os exercícios. O 1º Exercício é o JDBC. Criei um projeto chamado jdbc(Java SE) e em properties >> build path eu adicionei o .jar do MySql Connector. Sempre que eu abro o projeto, eu o vejo lá, o meu .jar na raiz do projeto. Seguindo a linha de exercícios, criei o FJ21-Agenda(Não mudei nada da apostila, nem o nome) e adicionei o Connector do Mysql e contrário do jdbc, eu não vejo ele lá na raiz e nem em lugar nenhum, mas ele está instalado, pois quando eu abro o Build Path e na aba > Libraries, eu o vejo lá, mas no projeto eu não o vejo. Eu estou tento um erro ao gravar uma informação. Esse é o erro:
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
br.com.jdbc.connectionFactory.getConnection(connectionFactory.java:11)
br.com.DAO.ContatoDAO.<init>(ContatoDAO.java:16)
br.com.caelum.agenda.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
br.com.jdbc.connectionFactory.getConnection(connectionFactory.java:9)
br.com.DAO.ContatoDAO.<init>(ContatoDAO.java:16)
br.com.caelum.agenda.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
Servlet implementation class AdicionaContatoServlet
*/
public class AdicionaContatoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
@see HttpServlet#HttpServlet()
*/
public AdicionaContatoServlet() {
super();
// TODO Auto-generated constructor stub
}
PrintWriter out = response.getWriter();
//buscando os parâmetros no request
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/yyyy").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
} catch (java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//monta 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>");
a) Clique no seu projeto, pressione F5 para executar um Refresh.
b) Selecione o seu driver do MySQL, clique da direita e escolha Build Path, Add to Build Path:
Mas não consigo obter o Add to Build Path. Como eu faço isso? Eu faço assim:
Clico com direito no Projeto e depois um Build Path. A opção Add to Build Path não tem. Ele diz para eu selecionar primeiro o Driver, mas como se eu ainda vou instalar?
Isso eu já fiz, tanto em Add Jars quanto em Add External Jars. Não funfa. Se tivesse como enviar uma imagem, eu enviaria os meus project explorer e aí vcs veriam como estão.
Isso eu já fiz e não resolveu. Pode ser que o erro seja outro, mas a mensagem que dá é do erro Http Error 500 - No suitable…blá blá blá blá. Então, esse tipo de erro pelo que eu pesquisei na net e outros meios, todos dizem que ele é referente a não achar o driver do mysql e etc,etc,etc,etc. Não há nada mais a fazer, não sei o que fazer, Sempre apanho com a configuração do meu ambiente. Uso Helios, MySql 5. Mais uma pergunta. Preciso instalar uns jars de JSTL e não consigo baixar pelo endereço q tenho. Sabe onde eu os encontro: jstl-imp, jstl-api e etc… Baixei uns, mas com extensão:
.iml,.ipr,.iws e nenhum com extensão .jar.
Bom se você já fez isso tudo, você está colocando o driver errado ou seja incompatível com seu banco de dados verifica o nome e a versão do teu banco de dados e pega outro driver na internet.
boa sorte.
Cara, esse mesmo drivar funciona em outro projeto na mesma IDE, como eu falei no início do post. Com Java SE funciona e com WEB não, mas o driver é o mesmo. Veja o erro
[code]HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
br.com.jdbc.connectionFactory.getConnection(connectionFactory.java:11)
br.com.DAO.ContatoDAO.<init>(ContatoDAO.java:16)
br.com.caelum.agenda.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
br.com.jdbc.connectionFactory.getConnection(connectionFactory.java:9)
br.com.DAO.ContatoDAO.<init>(ContatoDAO.java:16)
br.com.caelum.agenda.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.
public class connectionFactory {
public Connection getConnection() {
System.out.println(“Conectando ao banco”);
try {
return DriverManager.getConnection(“jdbc:mysql://localhost/fj21”, “root”, “s123”);
} catch(SQLException e) {
throw new RuntimeException(e);
}
voce esta sem a lib. A lib no mysql varia de acordo com a Versao do banco. Você ve qual é a sua versão do banco e procura no google o seu .jar . nao adianta usar o jar do curso a não ser que o seu mysql seja identico ao deles, que eu acho dificil.