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.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:15)
br.com.caelum.jdbc.DAO.ContatoDao.(ContatoDao.java:13)
br.com.caelum.agenda.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.68 logs.
Apache Tomcat/7.0.68
package br.com.caelum.agenda.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;
import br.com.caelum.jdbc.DAO.ContatoDao;
import br.com.caelum.jdbc.modelo.Contato;
@WebServlet("/adicionaContato")
public class AdicionaContatoServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String nome = request.getParameter("nome");
String email = request.getParameter("email");
String endereco = request.getParameter("endereco");
String dataEmTexto = request.getParameter("dataNascimento");
Calendar dataNascimento = null;
//fazendo a convercao
try{
Date data = new SimpleDateFormat("dd/MM/yyyy").
parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(data);
}catch(ParseException e){
out.println("Erro de Convercao de data");
return; //para execucao do metodo
}
//montar um objecto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setEndereco(endereco);
contato.setDataNascimento(dataNascimento);
//salvar o contato
ContatoDao dao = new ContatoDao();
dao.adicionar(contato);
//imorime o nome que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Contato "+contato.getNome() +
" Adicionado com Sucesso");
out.println("</body>");
out.println("</html>");
}
}
package br.com.caelum.jdbc.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDao {
private Connection connection;
public ContatoDao(){
this.connection = new ConnectionFactory().getConnection();
}
public void adicionar(Contato contato)
{
String sql=“INSERT INTO contatos(nome,email,endereco,dataNascimento)”
+ “VALUES(?,?,?,?)”;
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new java.sql.Date(contato.
getDataNascimento().getTimeInMillis()));
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
Insert title here Nome: Email: Endereco: Data Nascimento: <input type="submit" value="GRAVAR" name="gravar" class="botao">
</form>