Problemas con enviar un objeto en JSF

Buenas tardes;

Soy nuevo acá y me gustaría agradecerles la labor que llevan con este foro, está fantástico.

Bueno al rollo, tengo un problema con un código que he realizado probando entre JSF e hibernate, las dos clases que se han creado con hibernate las he usado para que sean los manegadores de JSF, el me ingresa bien los atributos de datos primitivos pero tengo un problema con el atributo de relación 1 a muchos, las clases son Producto y tipo producto, de lógica se sabe que el producto guarda el id del tipo de prodcto e ahi el problema, a continuación pongo el código:

Clase producto:

@ManagedBean
public class Producto  implements java.io.Serializable {

     private Long id;
     private Tipoproducto tipoproducto;
     private Integer cantidaddisponible;
     private String nombreproducto;
     private Double precio;

    public Producto() {
    }

    public Producto(Tipoproducto tipoproducto, Integer cantidaddisponible, String nombreproducto, Double precio) {
       this.tipoproducto = tipoproducto;
       this.cantidaddisponible = cantidaddisponible;
       this.nombreproducto = nombreproducto;
       this.precio = precio;
    }
   
    public Long getId() {
        return this.id;
    }
   
    public void setId(Long id) {
        this.id = id;
    }
    public Tipoproducto getTipoproducto() {
        return this.tipoproducto;
    }
   
    public void setTipoproducto(Tipoproducto tipoproducto) {
        this.tipoproducto = tipoproducto;
    }
    public Integer getCantidaddisponible() {
        return this.cantidaddisponible;
    }
   
    public void setCantidaddisponible(Integer cantidaddisponible) {
        this.cantidaddisponible = cantidaddisponible;
    }
    public String getNombreproducto() {
        return this.nombreproducto;
    }
   
    public void setNombreproducto(String nombreproducto) {
        this.nombreproducto = nombreproducto;
    }
    public Double getPrecio() {
        return this.precio;
    }
   
    public void setPrecio(Double precio) {
        this.precio = precio;
    }

    public void Ingresar(Producto p){
        try{
            SessionFactory SesFact = HibernateUtil.getSessionFactory();
            Session ses = SesFact.openSession();
            Transaction Tr = ses.beginTransaction();
           
            ses.save(p);
            Tr.commit();
           
        }catch(Exception e){
            e.printStackTrace();
        }
       
    }
    public List<Tipoproducto> Listar(){
       List<Tipoproducto> listado=null;
        try{
            SessionFactory SesFact = HibernateUtil.getSessionFactory();
            Session ses = SesFact.openSession();
            Transaction Tr = ses.beginTransaction();
           
            listado =  ses.createCriteria(Tipoproducto.class).list();
            Tr.commit();
           
        }catch(Exception e){
            e.printStackTrace();
        }
        return listado;
    }
   

}

bean TipoProducto

@ManagedBean
public class Tipoproducto  implements java.io.Serializable {

     private Long id;
     private String tipoproducto;
     private Set<Producto> productos = new HashSet<Producto>(0);

    public Tipoproducto() {
    }

    public Tipoproducto(String tipoproducto, Set<Producto> productos) {
       this.tipoproducto = tipoproducto;
       this.productos = productos;
    }
   
    public Long getId() {
        return this.id;
    }
   
    public void setId(Long id) {
        this.id = id;
    }
    public String getTipoproducto() {
        return this.tipoproducto;
    }
   
    public void setTipoproducto(String tipoproducto) {
        this.tipoproducto = tipoproducto;
    }
    public Set<Producto> getProductos() {
        return this.productos;
    }
   
    public void setProductos(Set<Producto> productos) {
        this.productos = productos;
    }

    public void Ingresar(Tipoproducto p){
        try{
            SessionFactory SesFact = HibernateUtil.getSessionFactory();
            Session ses = SesFact.openSession();
            Transaction Tr = ses.beginTransaction();
           
            ses.save(p);
            Tr.commit();
           
        }catch(Exception e){
            e.printStackTrace();
        }
       
    }
   
}

Página de JSF:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        <h:form>
            <h:selectOneMenu id="tipoProducto" label="Tipo producto" value="#{producto.tipoproducto}"/>
             <f:selectItems value="#{producto.Listar()}" var="n" itemValue="#{n}" itemLabel="#{n.tipoproducto}"/>
           
        </h:selectOneMenu>
        <h:outputText value="Producto"></h:outputText>    
        <h:inputText label="Producto" value="#{producto.nombreproducto}"/>
        <h:outputText value="Cantidad"></h:outputText>  
        <h:inputText label="Cantidad" value="#{producto.cantidaddisponible}"/>
        <h:outputText value="Precio"></h:outputText>  
        <h:inputText label="Precio" value="#{producto.precio}"/>
        <h:commandButton action="#{producto.Ingresar(producto)}" value="Aceptar"></h:commandButton>
        </h:form>
    </h:body>
</html>

Acá en la página tengo el que es quien muestra los datos de tipo de producto y al enviar el formulario me tira el siguiente error. Error de conversión al definir el valor 'pojos.Tipoproducto@1697029' para 'null Converter', entonces no sé cual es el problema, espero vuestra ayuda.
Perdón por meter esto también es que trabajo con netbeans 7.0 y el glassfish a veces cuando lo ejecuto se me queda parado y no hace nada y no sé que problema tendrá, me toca quitarlo e instalarlo de nuevo.

De antemano muchas gracias, Dios los bendiga.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Pregunta

Como solucionaste ese problema, yo tengo el mismo y no se que hacer!!