I have an html sending request
to a servlet
which responds with error however when I run a testaAdicionaContato
class.
mySQL 5 table:
create table contatos (
id BIGINT NOT NULL AUTO_INCREMENT,
nome VARCHAR(255),
email VARCHAR(255),
endereco VARCHAR(255),
dataNascimento DATE,
primary key (id)
);
class TestAdContact:
package br.com.caelum.servlet;
import java.util.Calendar;
public class TestaAdicionaContato {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Contato contato = new Contato();
contato.setNome("nome");
contato.setEndereco("endereco");
contato.setEmail("email");
contato.setDataNascimento(Calendar.getInstance());
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
}
}
Servlet AddContact call when filling form in localhost: 8080 / calendar / add-contact-html
package br.com.caelum.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/adicionaContato")
@SuppressWarnings("serial")
public class AdicionaContato extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
// busca o writer
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
}
// 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>");
}
}
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 br.com.caelum.servlet.ConnectionFactory.getConnection (ConnectionFactory.java:13) br.com.caelum.servlet.ContatoDAO (ContactDAO.java:24) br.com.caelum.servlet.AddContact.service (AddContact.java:49) javax.servlet.http.HttpServlet.service (HttpServlet.java:728) note The full stack trace of the root cause is available in the Apache Tomcat / 7.0.41 logs.
Can you help me?