Olá Pessoal,
Estou iniciando o curso de java web baseado na apostila da caelum, estava funcionando certinho até agora mas to tentando inserir um registro no banco e não dá certo.
Os códigos seguem abaixo, se alguém puder me dar uma luz sobre o que pode estar acontecendo eu agradeço muito.
Formulário html
<html>
<body>
<form action="AdicionaContatoServlet" method="post">
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /><br />
Endereço: <input type="text" name="endereco" /><br />
Data Nascimento: <input type="text" name="dataNascimento" /><br />
<input type="submit" value="Gravar" />
</form>
</body>
</html>
Código da Servlet
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AdicionaContatoServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
PrintWriter out = response.getWriter();
// pegndo os parâmetros do 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 = (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();
try {
dao.adiciona(contato);
} catch (SQLException ex) {
Logger.getLogger(AdicionaContatoServlet.class.getName()).log(Level.SEVERE, null, ex);
}
// 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>");
}
}
Classe contato
import java.util.Calendar;
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;
private Calendar dataNascimento;
// métodos get e set para id, nome, email, endereço e dataNascimento
public String getNome() {
return this.nome;
}
public void setNome(String novo) {
this.nome = novo;
}
public String getEmail() {
return this.email;
}
public void setEmail(String novo) {
this.email = novo;
}
public String getEndereco() {
return this.endereco;
}
public void setEndereco(String novo) {
this.endereco = novo;
}
public Long getId() {
return this.id;
}
public void setId(Long novo) {
this.id = novo;
}
public Calendar getDataNascimento() {
return this.dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
}
Classe ContatoDao
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
public class ContatoDao {
// a conexão com o banco de dados
private Connection connection;
public ContatoDao() {
this.connection = new ConnectionFactory() {
@Override
public javax.jms.Connection createConnection() throws JMSException {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public javax.jms.Connection createConnection(String userName, String password) throws JMSException {
throw new UnsupportedOperationException("Not supported yet.");
}
private Connection getConnection() {
throw new UnsupportedOperationException("Not yet implemented");
}
}.getConnection();
}
public void adiciona(Contato contato) throws SQLException {
String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";
try {
// prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
// seta os valores
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
// executa
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
Este é o erro que está me retornando:
HTTP Status 404 -
type Status report
message
description The requested resource () is not available.
Obrigado pela atenção