Bom dia pessoal, estou a pouco tempo desenvolvendo com hibernate como persistencia e travei ao fazer o atualizar segue o codigo:
SisGerController.java
package br.com.sisger.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.sisger.model.command.InterfaceCommand;
import br.com.sisger.model.helper.SisGerHelper;
/**
* Servlet implementation class for Servlet: SisGerControllet
*
*/
public class SisGerController extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public SisGerController() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
private void processarRequisicao(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
SisGerHelper sisGerHelper = new SisGerHelper(request);
InterfaceCommand command = sisGerHelper.getCommand();
String pagina = command.execute(request, response);
request.getRequestDispatcher(pagina).forward(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.processarRequisicao(request, response);
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
this.processarRequisicao(request, response);
}
}
Fornecedor.java
package br.com.sisger.model.bean;
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
public class Fornecedor {
private Integer codigo;
private String nome;
private String endereco;
private String email;
private String bairro;
private String cidade;
private String cep;
private String estado;
private String fone;
private String celular;
private String cpf;
private String obs;
private String rg;
private String orgaorg;
private Date desde;
private String cnpj;
private String insest;
private String fax;
private String contato;
private String auditoria;
private Integer codEmpresa;
private List<Produto> produtos;
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getCep() {
return cep;
}
public void setCep(String cep) {
this.cep = cep;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getFone() {
return fone;
}
public void setFone(String fone) {
this.fone = fone;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getObs() {
return obs;
}
public void setObs(String obs) {
this.obs = obs;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getOrgaorg() {
return orgaorg;
}
public void setOrgaorg(String orgaorg) {
this.orgaorg = orgaorg;
}
// Valor que nao existe tratado
public Date getDesde() {
return desde;
}
public void setDesde(Date desde) {
this.desde = desde;
}
public void setDesdeString(String desdeString) throws ParseException {
if(desdeString != null && !desdeString.equals(""))
{
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
setDesde(new Date(df.parse(desdeString).getTime()));
}
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getInsest() {
return insest;
}
public void setInsest(String insest) {
this.insest = insest;
}
public String getFax() {
return fax;
}
public void setFax(String fax) {
this.fax = fax;
}
public String getContato() {
return contato;
}
public void setContato(String contato) {
this.contato = contato;
}
public String getAuditoria() {
return auditoria;
}
public void setAuditoria(String auditoria) {
this.auditoria = auditoria;
}
public List<Produto> getProdutos() {
return produtos;
}
public void setProdutos(List<Produto> produtos) {
this.produtos = produtos;
}
public Integer getProdutosSize()
{
if(getProdutos() != null)
{
return produtos.size();
}else
{
return 0;
}
}
//Validador do Formulario Fornecedor
public boolean isValido()
{
if(nome == null || nome.equals(""))
{
return false;
}
if(fone == null || fone.equals(""))
{
return false;
}
return true;
}
public Integer getCodEmpresa() {
return codEmpresa;
}
public void setCodEmpresa(Integer codEmpresa) {
this.codEmpresa = codEmpresa;
}
}
Fornecedor.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="br.com.sisger.model.bean.Fornecedor" table="fornecedor">
<id name="codigo">
<generator class="native"></generator>
</id>
<property name="nome"></property>
<property name="endereco"></property>
<property name="email"></property>
<property name="bairro"></property>
<property name="cidade"></property>
<property name="cep"></property>
<property name="estado"></property>
<property name="fone"></property>
<property name="celular"></property>
<property name="cpf"></property>
<property name="obs"></property>
<property name="rg"></property>
<property name="orgaorg"></property>
<property name="desde"></property>
<property name="cnpj"></property>
<property name="insest"></property>
<property name="fax"></property>
<property name="contato"></property>
<property name="auditoria"></property>
<property name="codEmpresa"></property>
<bag name="produtos" table="produto" inverse="true" lazy="false" fetch="select" cascade="all">
<key column="fornecedor_codigo"></key>
<one-to-many class="br.com.sisger.model.bean.Produto"/>
</bag>
</class>
</hibernate-mapping>
AtualizarFornecedor
package br.com.sisger.model.command;
import java.lang.reflect.InvocationTargetException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import br.com.sisger.model.bean.Fornecedor;
import br.com.sisger.model.dao.HibernateDAO;
import br.com.sisger.model.dao.InterfaceDAO;
public class AtualizarFornecedor implements InterfaceCommand {
public String execute(HttpServletRequest request,
HttpServletResponse response) {
Fornecedor fornecedor = new Fornecedor();
try {
BeanUtils.populate(fornecedor, request.getParameterMap());
if(fornecedor.isValido())
{
InterfaceDAO<Fornecedor> fornecedorDAO = new HibernateDAO<Fornecedor>(Fornecedor.class);
fornecedorDAO.atualizar(fornecedor);
request.setAttribute("mensagem", "Fornecedor atualizado com sucesso.");
}else if (request.getMethod().equalsIgnoreCase("post")) {
request.setAttribute("fornecedor", fornecedor);
request.setAttribute("mensagem", "Preencha os campos obrigatórios.");
return "atualiza_fornecedor.jsp";
}else{
InterfaceDAO<Fornecedor> fornecedorDAO = new HibernateDAO<Fornecedor>(Fornecedor.class);
Integer codigo = Integer.valueOf(request.getParameter("codigo"));
request.setAttribute("fornecedor", fornecedorDAO.getBean(codigo));
return "atualiza_fornecedor.jsp";
}
} catch (IllegalAccessException e) {
request.setAttribute("mensagem", "Problemas com a atualização: "+e.getMessage());
e.printStackTrace();
} catch (InvocationTargetException e) {
request.setAttribute("mensagem", "Problemas com a atualização: "+e.getMessage());
e.printStackTrace();
}
return "SiscomController?cmd=consultarFornecedor";
}
}
ConsultarFornecedor.java
package br.com.sisger.model.command;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.sisger.model.bean.Fornecedor;
import br.com.sisger.model.dao.HibernateDAO;
import br.com.sisger.model.dao.InterfaceDAO;
public class ConsultarFornecedor implements InterfaceCommand {
public String execute(HttpServletRequest request,
HttpServletResponse response) {
// TODO Auto-generated method stub
InterfaceDAO<Fornecedor> fornecedorDAO = new HibernateDAO<Fornecedor>(Fornecedor.class);
List<Fornecedor> fornecedores = fornecedorDAO.getBeans();
request.setAttribute("fornecedores", fornecedores);
return "consulta_fornecedor.jsp";
}
}
atualiza_fornecedor.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%-- Declaração da LIB core JSTL library --%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Atualização de Fornecedor</title>
<link rel="stylesheet" type="text/css" href="css/principal.css">
<script language="JavaScript" type="text/javascript" src="javascript/Validacoes.js"></script>
</head>
<body>
<div id="container">
<div id="top">
<h1> Atualização de Fornecedor</h1>
<h3>${mensagem}</h3>
</div>
<div id="leftSide">
<fieldset>
<legend>Fornecedor</legend>
<form id="form1" action="SisGerController" method="post" class="form">
<input type="hidden" id="cmd" name="cmd" value="atualizarFornecedor" />
<input type="hidden" id="codigo" name="codigo" value="${param.codigo}"/>
<label for="nome">Nome*</label>
<div class="div_texbox">
<input type="text" name="nome" id="nome" value="${fornecedor.nome}"/>
</div>
<label for="endereco">Endereco</label>
<div class="div_texbox">
<input type="text" name="endereco" id="endereco" value="${fornecedor.endereco}"/>
</div>
<label for="bairro">Bairro</label>
<div class="div_texbox">
<input type="text" name="bairro" id="bairro" value="${fornecedor.bairro}"/>
</div>
<label for="cidade">Cidade</label>
<div class="div_texbox">
<input type="text" name="cidade" id="cidade" value="${fornecedor.cidade}"/>
</div>
<label for="estado">Estado</label>
<div class="div_texbox">
<input type="text" name="estado" id="estado" value="${fornecedor.estado}"/>
</div>
<label for="cep">Cep</label>
<div class="div_texbox">
<input type="text" name="cep" id="cep" onKeyPress="MascaraCep(form1.cep);" value="${fornecedor.cep}"/>
</div>
<label for="fone">Telefone*</label>
<div class="div_texbox">
<input type="text" name="fone" id="fone" value="${fornecedor.fone}"/>
</div>
<label for="celular">Celular</label>
<div class="div_texbox">
<input type="text" name="celular" id="celular" value="${fornecedor.celular}"/>
</div>
<label for="cpf">Cpf</label>
<div class="div_texbox">
<input type="text" name="cpf" id="cpf" value="${fornecedor.cpf}"/>
</div>
<label for="obs">Obs.</label>
<div class="div_texbox">
<input type="text" name="obs" id="obs" value="${fornecedor.obs}"/>
</div>
<label for="rg">RG</label>
<div class="div_texbox">
<input type="text" name="rg" id="rg" value="${fornecedor.rg}"/>
</div>
<label for="orgaorg">Orgão RG</label>
<div class="div_texbox">
<input type="text" name="orgaorg" id="orgaorg" value="${fornecedor.orgaorg}"/>
</div>
<label for="desdeString">Cliente Desde*</label>
<div class="div_texbox">
<input type="text" name="desdeString" id="desdeString" value="${fornecedor.desde}"/>
</div>
<label for="cnpj">CNPJ</label>
<div class="div_texbox">
<input type="text" name="cnpj" id="cnpj" value="${fornecedor.cnpj}"/>
</div>
<label for="insest">Ins. Estadual</label>
<div class="div_texbox">
<input type="text" name="insest" id="insest" value="${fornecedor.insest}"/>
</div>
<label for="fax">Fax</label>
<div class="div_texbox">
<input type="text" name="fax" id="fax" value="${fornecedor.fax}"/>
</div>
<label for="contato">Contato</label>
<div class="div_texbox">
<input type="text" name="contato" id="contato" value="${fornecedor.contato}"/>
</div>
<label for="email">Email</label>
<div class="div_texbox">
<input type="text" name="email" id="email" value="${fornecedor.email}"/>
</div>
<label for="codEmpresa">Código da Empresa</label>
<div class="div_texbox">
<input type="text" name="codEmpresa" id="codEmpresa" value="${fornecedor.codEmpresa}"/>
</div>
<div class="button_div">
<input name="atualizar" type="submit" value="Atualizar" class="buttons"/>
</div>
</form>
</fieldset>
</div>
<!-- JSTL -->
<div id="rightSide">
<c:import url="menu.jsp"></c:import>
</div>
</div>
</body>
</html>
consulta_fornecedor.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.util.List, br.com.sisger.model.bean.Fornecedor, br.com.sisger.controller.SisGerController " %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Consulta Fornecedor</title>
<link rel="stylesheet" type="text/css" href="css/consultaFornecedor.css">
<script type="text/javascript">
function mostrarProdutos(codigo)
{
document.getElementById("produto"+codigo).style.display="block";
}
function esconderProdutos(codigo)
{
document.getElementById("produto"+codigo).style.display="none";
}
</script>
</head>
<body>
<div id="container">
<h1>Consulta Fornecedor</h1>
<h3>${mensagem}</h3>
<div id="leftSide">
<table>
<thead>
<tr>
<td>ID</td>
<td>Nome</td>
<td>Telefone</td>
<td>Cidade</td>
<td>Estado</td>
<td colspan="3">Opções</td>
</tr>
</thead>
<c:forEach var="fornecedor" items="${fornecedores}">
<tr onmouseover="mostrarProdutos(${fornecedor.codigo});"
onmouseout="esconderProdutos(${ fornecedor.codigo } );">
<td>${fornecedor.codigo}</td>
<td>${fornecedor.nome}</td>
<td>${fornecedor.fone}</td>
<td>${fornecedor.cidade}</td>
<td>${fornecedor.estado}</td>
<td><a href="SisGerController?cmd=atualizarFornecedor&codigo=${fornecedor.codigo}" ><img src="images/alterar.png" width="17" height="17" border="0"></a></td>
<td><a href="SisGerController?cmd=excluirFornecedor&codigo=${fornecedor.codigo }" ><img src="images/excluir.png" width="17" height="17" border="0"></a></td>
<td>C</td>
</tr>
</c:forEach>
</table>
</div>
<div id="rightSide">
<%@include file="menu.jsp"%>
</div>
<c:forEach var="fornecedor" items="${fornecedores}">
<div class="rightSideProdutos" style="display: none" id="produto${fornecedor.codigo}">
<table>
<thead>
<tr><td>${fornecedor.nome}</td></tr>
</thead>
<c:forEach var="produto" items="${fornecedor.produtos}">
<tr>
<td>${produto.descricao}</td>
</tr>
</c:forEach>
<c:if test="${fornecedor.produtosSize == 0}">
<tr><td>Não há produtos!</td></tr>
</c:if>
</table>
</div>
</c:forEach>
</div>
</body>
</html>
E me parece que ele nao preencho os dados onde todos retornam null, e ele gera este erro no console:
16/06/2009 10:58:57 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet SisGerController threw exception
java.lang.Error: Unresolved compilation problem:
The method execute(HttpServletRequest, HttpServletResponse) of type AtualizarFornecedor must override a superclass method
at br.com.sisger.model.command.AtualizarFornecedor.execute(AtualizarFornecedor.java:17)
at br.com.sisger.controller.SisGerController.processarRequisicao(SisGerController.java:31)
at br.com.sisger.controller.SisGerController.doGet(SisGerController.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
se alguem puder dar um help agradeço.