SOS Struts

1 resposta
mja_marcelo

Estou fazendo um projeto pra faculdade e preciso da força de vcs...

Utilizo o padrão MVC e o Struts atuando na camada de controle.

TENHO UMA CLASSE CLIENTE COMO MODELO:

package cadastros;
...
imports
...
public class Cliente extends Modelo {
	//atributos do cliente
	private String nome;
	private String cidade;
	private String estado;
	private String cpf;
	private String telefone;
	private String email;
	//variavel para conexao ao banco
	private Connection conn;
	
	public Cliente() throws SQLException {		
		this.conn = ConnectionFactory.getConnection();
	}
	
	public void adiciona() throws SQLException {
		PreparedStatement stmt = (PreparedStatement) this.conn.prepareStatement("insert into cliente (nome, cidade, estado, cpf, telefone, email) values (?, ?, ?, ?, ?, ?)");
		
		stmt.setString(1, this.nome);
		stmt.setString(2, this.cidade);
		stmt.setString(3, this.estado);
		stmt.setString(4, this.cpf);
		stmt.setString(5, this.telefone);
		stmt.setString(6, this.email);
		
		stmt.execute();
		stmt.close();
	}
	
	public void altera(Modelo modelo) throws SQLException {
		PreparedStatement stmt = (PreparedStatement) this.conn.prepareStatement("update clientes set nome=?, cidade=?, estado=?, cpf=?, telefone=?, email=? where codigo=?");
		
		stmt.setString(1, this.nome);
		stmt.setString(2, this.cidade);
		stmt.setString(3, this.estado);
		stmt.setString(4, this.cpf);
		stmt.setString(5, this.telefone);
		stmt.setString(6, this.email);
		stmt.setLong(7, modelo.getCodigo());
		
		stmt.execute();
		stmt.close();
	}
	
	public void remove(Modelo modelo) throws SQLException {
		PreparedStatement stmt = (PreparedStatement) this.conn.prepareStatement("delete from clientes where codigo=?");
		
		stmt.setLong(1, modelo.getCodigo());
		
		stmt.execute();
		stmt.close();
	}
	...
	getters and setters
	...
	
}
TENHO A CLASSE FORM:
package struts.form;

import java.sql.SQLException;

import org.apache.struts.action.*;
import cadastros.*;

public class ClienteForm extends ActionForm {
	
	//O erro ta dando na linha abaixo
        private Cliente cliente = new Cliente();
	
	public Cliente getCliente() {
		return cliente;
	}
	
}

E TENHO A CLASSE ACTION:

package struts.action;

import javax.servlet.http.*;

import org.apache.struts.action.*;

import cadastros.*;

import struts.form.ClienteForm;

public class AddCliente extends Action {
	public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println("Tentando cadastrar novo cliente...");
		ClienteForm formulario = ((ClienteForm) form);
		
		Cliente cliente = formulario.instancia();
		
		Cadastro cad = new Cadastro();
		cad.inclui(cliente);
		
		return map.findForward("add-cli-ok");
	}
}

O SEGUINTE ERRO ESTÁ DANDO:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception creating bean of class struts.form.ClienteForm: {1}
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.ServletException: Exception creating bean of class struts.form.ClienteForm: {1}
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.novoCli_jsp._jspService(novoCli_jsp.java:73)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

javax.servlet.jsp.JspException: Exception creating bean of class struts.form.ClienteForm: {1}
org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:465)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:432)
org.apache.jsp.novoCli_jsp._jspx_meth_html_form_0(novoCli_jsp.java:142)
org.apache.jsp.novoCli_jsp._jspx_meth_html_html_0(novoCli_jsp.java:98)
org.apache.jsp.novoCli_jsp._jspService(novoCli_jsp.java:66)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.

POR FAVOR, ME AJUDEM... PRECISO ENTREGAR ESTE PROJETO!!!

1 Resposta

marciobarroso

Bom dia,

Olha, sinceramente eu nunca havia visto esse tipo de implementação de um form. Normalmente, no form vc mapeia todos os campos da tela com atributos que posteriormente serão usados para popular seu model.

Talvez o motivo desta exceção seja a conexão com o banco que está sendo inicializada no contrutor do cliente.

Tente a nivel de teste comentar o código de dentro do contrutor do cliente.java e execute novamente.

[]'s

Criado 24 de novembro de 2006
Ultima resposta 24 de nov. de 2006
Respostas 1
Participantes 2