Erro no retorno do converter

0 respostas
E

Fala Galera,

tenho 2 selectonmenu, e fiz 2 converter para eles para que eu possa salvar na entidade tiposervico, so que está ocorrendo o erro

Erro de validação: o valor não é válido

No meu log aparece

Advertência: JSF1063: AVISO! Definindo valor de atributo não serializável em HttpSession (chave: tipoServicoController, classe do valor: Controller.TipoServicoController).
Ago 10, 2012 9:05:18 PM com.sun.faces.context.SessionMap put
Advertência: JSF1063: AVISO! Definindo valor de atributo não serializável em HttpSession (chave: servicoPrestadoController, classe do valor: Controller.ServicoPrestadoController).

Segue minhas classes:

gerenciartipoServico
<?xml version="1.0" encoding="ISO-8859-1"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
        <title>Cadastro serviços prestados</title>
    </head>
    <body>
        <h1>Cadastro serviços prestados</h1>
        <hr />
    <h:form>
        <h:messages />
            <h:panelGrid columns="2">
                <h:outputLabel value="Cliente: " />
                <h:selectOneMenu value="#{servicoPrestadoController.servicoPrestado.id_cliente}">
                    <f:selectItems value="#{servicoPrestadoController.clientes}"
                                   var="x"
                                   itemValue="#{x.value}"
                                   itemLabel="#{x.description}" />
                     <f:converter converterId="ClienteConverter"/>
                </h:selectOneMenu>
                
                <h:outputLabel value="Tipo Serviço: " />
                <h:selectOneMenu value="#{servicoPrestadoController.servicoPrestado.id_tipoServico}">
                    <f:selectItems value="#{servicoPrestadoController.tipoServicos}"
                                   var="y"
                                   itemValue="#{y.value}"
                                   itemLabel="#{y.description}" />
                    <f:converter converterId="TipoServicoConverter"/>
                </h:selectOneMenu>
                <h:outputLabel value="Data: " />
                <h:inputText value="#{servicoPrestadoController.servicoPrestado.data}" >
                    <f:convertDateTime pattern="dd/MM/yyyy"/>
                </h:inputText>
                <h:outputLabel value="Valor a pagar: " />
                <h:inputText value="#{servicoPrestadoController.servicoPrestado.vlrPagar}" />
                <h:outputLabel value="Valor pago: " />
                <h:inputText value="#{servicoPrestadoController.servicoPrestado.vlrPago}" />
                <h:outputLabel value="Quantidade de horas: " />
                <h:inputText value="#{servicoPrestadoController.servicoPrestado.qtdHoras}" />
                <h:commandButton action="#{servicoPrestadoController.adicionarServicoPrestado}" value="Salvar" />
                <h:commandButton action="#{servicoPrestadoController.alterarServicoPrestado}" value="Alterar"/>
                <h:outputLink value="index.jsf">Voltar</h:outputLink>
            </h:panelGrid>
    </h:form>
    <hr />
    </body>
</html>

ClienteController

package Controller;

import Dao.ClienteDao;
import Dao.ClienteDaoImp;
import Model.Cliente;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

/**
 *
 * @author Igor Souza
 */

@ManagedBean
@SessionScoped
public class ClienteController {
    
    private Cliente cliente;
    private DataModel listaClientes;
    
    public DataModel getListarClientes() {
        List<Cliente> lista = new ClienteDaoImp().list();
        listaClientes = new ListDataModel(lista);
        return listaClientes;
    }

    public Cliente getCliente() {
        return cliente;
    }

    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    public String prepararAdicionarCliente() {
        cliente = new Cliente();
        return "gerenciarCliente";
    }
    
    public String prepararAlterarCliente() {
        cliente = (Cliente) (listaClientes.getRowData());
        return "gerenciarCliente";
    }
    
    public String excluirCliente() {
        Cliente clienteTemp = (Cliente) (listaClientes.getRowData());
        ClienteDao dao = new ClienteDaoImp();
        dao.remove(clienteTemp);
        return "index";
    }
    
    public String adicionarCliente(){
        ClienteDao dao = new ClienteDaoImp();
        dao.save(cliente);
        return "index";
    }
    
    public String alterarCliente(){
        ClienteDao dao = new ClienteDaoImp();
        dao.update(cliente);
        return "index";
    }
    
}

ClienteConverter

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;


import Dao.ClienteDao;
import Dao.ClienteDaoImp;
import Model.Cliente;
import java.util.List;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.faces.model.SelectItem;

/**
 *
 * @author emanuel
 */
@FacesConverter(value="ClienteConverter", forClass=Cliente.class)
public class ClienteConverter implements Converter {
    
    private static final long serialVersionUID = 1L;
   

    public ClienteConverter() {
    }
    
    public Object getAsObject(FacesContext context, UIComponent component, String nome) {
      if(nome != null && !nome.isEmpty()){
        ClienteDao clienteDao = new ClienteDaoImp();
        List<Cliente> clientes = clienteDao.list();
        for (Cliente cli : clientes) {
            if(cli.getNome().equals(nome)) {
                return cli;
            }
        }
   }
        return null;
    
    }

    public String getAsString(FacesContext context, UIComponent component, Object obj) {
         if (obj != null && obj instanceof Cliente){
            long cl = ((Cliente) obj).getId();
            String imp = String.valueOf(cl);
            return imp;
          }
          return null;
       
    }
    
    
}
Cliente
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

/**
 *
 * @author Igor Souza
 */
@Entity
public class Cliente implements Serializable {
    
    @Id
    @GeneratedValue
    private long id;
    private String nome;
    private String endereco;
    private String bairro;
    private String cidade;
    private String uf;
    private String cep;
    private String telefone1;
    private String telefone2;
    
    
    public Cliente(){
    }
    
    public Cliente(long id, String nome, String endereco, String bairro, String cidade, String uf, String cep, String telefone1, String telefone2) {
        this.id = id;
        this.nome = nome;
        this.endereco = endereco;
        this.bairro = bairro;
        this.cidade = cidade;
        this.uf = uf;
        this.cep = cep;
        this.telefone1 = telefone1;
        this.telefone2 = telefone2;
    }
    
    public Cliente(long id){
        this.id = id;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone1() {
        return telefone1;
    }

    public void setTelefone1(String telefone1) {
        this.telefone1 = telefone1;
    }

    public String getTelefone2() {
        return telefone2;
    }

    public void setTelefone2(String telefone2) {
        this.telefone2 = telefone2;
    }

    public String getUf() {
        return uf;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }
    
}

Vlw pessoal.

Criado 10 de agosto de 2012
Respostas 0
Participantes 1