Galera estou tendo dificuldades na implementação de um código da apostila.
O Código gera o seguinte erro:
Erro.... java.lang.InstantiationException
Pagina de Formulário:
[code]<body>
<form action=“mvc” method=“POST”>
Id: <input type="text" name="id" />
Nome: <input type="text" name="nome" />
Endereco: <input type="text" name="endereco" />
Email: <input type="text" name="email" />
<input type="hidden" name="business" value="AlteraContatoLogic" />
<input type="submit" />
</form>
</body>[/code]
ServletController mapeado como /mvc
[code]package br.com.caelum.mvc;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ControllerServlet extends HttpServlet{
protected void service(HttpServletRequest request , HttpServletResponse response) throws IOException,
ServletException{
String business = request.getParameter("business");
System.out.println(business);
String classname = "br.com.caelum.mvc." + business;
try{
Class clazz = Class.forName(classname);
BusinessLogic businessLogic = (BusinessLogic) clazz.newInstance();
businessLogic.execute(request, response);
}catch(Exception e){
throw new ServletException("A lógica de negócios causou uma exception!! ",e);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,
ServletException{
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws IOException,
ServletException{
}
}[/code]
Minha classe
[code]package br.com.caelum.mvc;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.dao.ContatoDAO;
import br.com.caelum.modelo.Contato;
public abstract class AlteraContatoLogic implements BusinessLogic {
public void execute(HttpServletRequest request, HttpServletResponse response)throws Exception {
System.out.println("Executando a Lógica de Redirecionamento...");
Contato contato = new Contato();
long id = Long.parseLong(request.getParameter("id"));
contato.setId(id);
contato.setNome(request.getParameter("nome"));
contato.setEmail(request.getParameter("email"));
contato.setEndereco(request.getParameter("endereco"));
ContatoDAO dao = new ContatoDAO();
dao.altera(contato);
RequestDispatcher rd = request.getRequestDispatcher("/lista-elegante.jsp");
rd.forward(request, response);
System.out.println("Alterando Contato: " + contato.getNome());
}
}[/code]
Minha Interface
[code]package br.com.caelum.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface BusinessLogic {
public abstract void execute(HttpServletRequest request , HttpServletResponse response) throws Exception;
}
[/code]
Estou lendo a apostila caelum FJ-21 e os códigos se encontram no capitulo 13.
Abraço e obrigado desde já.