Foro Oficial de Java

Muy buen framework, si algun dia se me da el rollo de la web llegare a considerarlo, a proposito alguna fuente de documentación en ingles para ahorrarse la flojera de traducir?...

No hay en español pero tengo como ganas de ayudarles a traducir el documento de apoyo.

Buenas tardes

Estoy trabajando en Hibernate y este es un Bean que yo uso.

Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Mercado.Persistencia;

import Mercado.Controladora.MercadoControladora;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Folger Fonseca Velasco
 */
@Entity
@Table(name = "MENU")
@NamedQueries({@NamedQuery(name = "Menu.findAll", query = "SELECT m FROM Menu m"), @NamedQuery(name = "Menu.findByMenuId", query = "SELECT m FROM Menu m WHERE m.menuId = :menuId"), @NamedQuery(name = "Menu.findByNmbMen", query = "SELECT m FROM Menu m WHERE m.nmbMen = :nmbMen"), @NamedQuery(name = "Menu.findByUrlMen", query = "SELECT m FROM Menu m WHERE m.urlMen = :urlMen"), @NamedQuery(name = "Menu.findByDescMen", query = "SELECT m FROM Menu m WHERE m.descMen = :descMen")})
public class Menu implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "MENU_ID")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long menuId;
    @Column(name = "NMB_MEN")
    private String nmbMen;
    @Column(name = "URL_MEN")
    private String urlMen;
    @Column(name = "DESC_MEN")
    private String descMen;
    @Column(name = "ID_USR")
    private String idUsr;
    @Column(name = "FEC_MEN")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecMen;
    @Column(name = "EST_MEN")
    private String estMen;
    @JoinTable(name = "MENU_PRODUCTO", joinColumns = {
        @JoinColumn(name = "MENU_ID", referencedColumnName = "MENU_ID")}, inverseJoinColumns = {
        @JoinColumn(name = "PRD_ID", referencedColumnName = "PRD_ID")})
    @ManyToMany
    private Collection<Producto> productoCollection;
    @OneToMany(mappedBy = "menuId",fetch=FetchType.LAZY)
    private Collection<Caracteristica> caracteristicaCollection;
    @JoinColumn(name = "CTL_ID", referencedColumnName = "CTL_ID")
    @ManyToOne
    private Catalogo ctlId;
    @OneToMany(mappedBy = "padId", fetch=FetchType.EAGER)
    private Collection<Menu> menuCollection;
    @JoinColumn(name = "PAD_ID", referencedColumnName = "MENU_ID")
    @ManyToOne
    private Menu padId;
    @JoinColumn(name = "ID_APP", referencedColumnName = "ID_APP")
    @ManyToOne
    private Aplicacion aplicacion;

    public Menu() {
        if(menuId!=null){
            try {
                MercadoControladora mc = new MercadoControladora();
                productoCollection = (ArrayList<Producto>) mc.productosPorCategoria(menuId.toString());
            } catch (Exception e) {
                productoCollection = new ArrayList<Producto>();
            }
        }
    }

    public Menu(Long menuId) {
        this.menuId = menuId;
    }

    public Long getMenuId() {
        return menuId;
    }

    public void setMenuId(Long menuId) {
        this.menuId = menuId;
    }

    public Aplicacion getAplicacion() {
        return aplicacion;
    }

    public void setAplicacion(Aplicacion aplicacion) {
        this.aplicacion = aplicacion;
    }

    public String getNmbMen() {
        return nmbMen;
    }

    public void setNmbMen(String nmbMen) {
        this.nmbMen = nmbMen;
    }

    public String getUrlMen() {
        return urlMen;
    }

    public void setUrlMen(String urlMen) {
        this.urlMen = urlMen;
    }

    public String getDescMen() {
        return descMen;
    }

    public void setDescMen(String descMen) {
        this.descMen = descMen;
    }

    public String getIdUsr() {
        return idUsr;
    }

    public void setIdUsr(String idUsr) {
        this.idUsr = idUsr;
    }

    public Date getFecMen() {
        return fecMen;
    }

    public void setFecMen(Date fecMen) {
        this.fecMen = fecMen;
    }

    public String getEstMen() {
        return estMen;
    }

    public void setEstMen(String estMen) {
        this.estMen = estMen;
    }

    public Collection<Producto> getProductoCollection() {
        return productoCollection;
    }

    public void setProductoCollection(Collection<Producto> productoCollection) {
        this.productoCollection = productoCollection;
    }

    public Collection<Caracteristica> getCaracteristicaCollection() {
        return caracteristicaCollection;
    }

    public void setCaracteristicaCollection(Collection<Caracteristica> caracteristicaCollection) {
        this.caracteristicaCollection = caracteristicaCollection;
    }

    public Catalogo getCtlId() {
        return ctlId;
    }

    public void setCtlId(Catalogo ctlId) {
        this.ctlId = ctlId;
    }

    public Collection<Menu> getMenuCollection() {
        return menuCollection;
    }

    public void setMenuCollection(Collection<Menu> menuCollection) {
        this.menuCollection = menuCollection;
    }

    public Menu getPadId() {
        return padId;
    }

    public void setPadId(Menu padId) {
        this.padId = padId;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (menuId != null ? menuId.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Menu)) {
            return false;
        }
        Menu other = (Menu) object;
        if ((this.menuId == null && other.menuId != null) || (this.menuId != null && !this.menuId.equals(other.menuId))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Mercado.Persistencia.Menu[menuId=" + menuId + "]";
    }

}
cuando en un XHTML hago #{(fn:length(menuHij.productoCollection)) ne 0} me bota este error:

Código:
GRAVE: failed to lazily initialize a collection of role: Mercado.Persistencia.Menu.productoCollection, no session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Mercado.Persistencia.Menu.productoCollection, no session or session was closed
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
        at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
        at org.hibernate.collection.PersistentBag.size(PersistentBag.java:225)
        at com.sun.facelets.tag.jstl.fn.JstlFunction.length(JstlFunction.java:88)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
        at org.apache.el.parser.AstNotEqual.getValue(AstNotEqual.java:37)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
        at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271)
        at org.ajax4jsf.renderkit.html.RepeatRenderer$1.process(RepeatRenderer.java:53)
        at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:101)
        at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
        at org.ajax4jsf.renderkit.html.RepeatRenderer.encodeChildren(RepeatRenderer.java:59)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
        at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
        at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
        at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
        at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
        at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
        at org.apache.jsp.forward_jsp._jspService(forward_jsp.java:55)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
19/04/2011 04:42:54 PM com.sun.facelets.FaceletViewHandler handleRenderException
GRAVE: Error Rendering View[/index.xhtml]
javax.faces.FacesException: javax.el.ELException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:373)
        at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271)
        at org.ajax4jsf.renderkit.html.RepeatRenderer$1.process(RepeatRenderer.java:53)
        at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:101)
        at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
        at org.ajax4jsf.renderkit.html.RepeatRenderer.encodeChildren(RepeatRenderer.java:59)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
        at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
        at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
        at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
        at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
        at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
        at org.apache.jsp.forward_jsp._jspService(forward_jsp.java:55)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.ELException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
        ... 48 more
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Mercado.Persistencia.Menu.productoCollection, no session or session was closed
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
        at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
        at org.hibernate.collection.PersistentBag.size(PersistentBag.java:225)
        at com.sun.facelets.tag.jstl.fn.JstlFunction.length(JstlFunction.java:88)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
        at org.apache.el.parser.AstNotEqual.getValue(AstNotEqual.java:37)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
        ... 49 more
19/04/2011 04:42:55 PM com.sun.faces.lifecycle.LifecycleImpl phase
ADVERTENCIA: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@1792a8e) threw exception
javax.faces.FacesException: javax.el.ELException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:373)
        at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271)
        at org.ajax4jsf.renderkit.html.RepeatRenderer$1.process(RepeatRenderer.java:53)
        at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:101)
        at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
        at org.ajax4jsf.renderkit.html.RepeatRenderer.encodeChildren(RepeatRenderer.java:59)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
        at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
        at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
        at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
        at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
        at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
        at org.apache.jsp.forward_jsp._jspService(forward_jsp.java:55)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.ELException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
        ... 48 more
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Mercado.Persistencia.Menu.productoCollection, no session or session was closed
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
        at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
        at org.hibernate.collection.PersistentBag.size(PersistentBag.java:225)
        at com.sun.facelets.tag.jstl.fn.JstlFunction.length(JstlFunction.java:88)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
        at org.apache.el.parser.AstNotEqual.getValue(AstNotEqual.java:37)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
        ... 49 more
19/04/2011 04:42:55 PM org.ajax4jsf.webapp.BaseXMLFilter doXmlFilter
GRAVE: Exception in the filter chain
javax.servlet.ServletException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
        at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
        at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
        at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
        at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
        at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
        at org.apache.jsp.forward_jsp._jspService(forward_jsp.java:55)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        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:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        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:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.ELException: /templates/templateCliente.xhtml @385,120 rendered="#{(fn:length(menuPad.productoCollection)) ne 0}": Problemas llamando a función 'fn:length'
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
        at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
        at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:271)
        at org.ajax4jsf.renderkit.html.RepeatRenderer$1.process(RepeatRenderer.java:53)
        at org.ajax4jsf.model.SequenceDataModel.walk(SequenceDataModel.java:101)
        at org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
        at org.ajax4jsf.renderkit.html.RepeatRenderer.encodeChildren(RepeatRenderer.java:59)
        at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
        at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
        at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
        at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
        at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
        ... 33 more
Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: Mercado.Persistencia.Menu.productoCollection, no session or session was closed
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
        at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
        at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
        at org.hibernate.collection.PersistentBag.size(PersistentBag.java:225)
        at com.sun.facelets.tag.jstl.fn.JstlFunction.length(JstlFunction.java:88)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
        at org.apache.el.parser.AstNotEqual.getValue(AstNotEqual.java:37)
        at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
        ... 49 more
Porfa ayudenme con esto... GRACIAS!!!

Cuando uno obtiene un objeto dentro de una sesión que utiliza lazy loading en realidad se crea un objeto proxy que consulta los datos (sus propiedades o columnas en la base de datos) dependiendo de la necesidad, si estas usando el objeto proxy afuera de una sesión te va a lanzar ese error, si no es así y no estás usando Spring hay otra solución.


Yo tuve ese problema hace un tiempo y me saco canas verdes, el problema es usar las anotaciones directamente sobre la variables de instancia como haces ahí, lo que debes hacer es usar las anotaciones sobre los métodos GET, aquí te dejo este blog con información del porque.



La otra es que si usas Spring(todo esto es según el libro Apress Beginning Hibernate del autor Jeff Linwood, pagina 332,333), la cosa es que cuando el método DAO termina, por lo general uno desprende el objeto de la sesión de hibérnate, y si este se pasa a la vista producirá un LazyInitiationException, esto debido a que no se accedió a una propiedad antes de terminar el método y no se cargo la propiedad adecuadamente(recuerda que es un proxy) antes de cerrar la sesión, según varias personas la mejor solución en este caso es usar una clase de Spring llamada OpenSessionInView, busca en Internet como usarla o consulta el libro si lo tienes(también la hay digital).
 
Disculpen soy nuevo aqui y desearia q me ayuden en un tema importante para mi tengo un celular nokia n97 chino y no puedo entras a servicios de internet ni a leer mis mensajes de texto lo intentado todo pero nada me funciona alguien me podria ayudar de urgencia espero rspuestas concretas
 
Disculpen soy nuevo aqui y desearia q me ayuden en un tema importante para mi tengo un celular nokia n97 chino y no puedo entras a servicios de internet ni a leer mis mensajes de texto lo intentado todo pero nada me funciona alguien me podria ayudar de urgencia espero rspuestas concretas


Joder tio podrias ser tan amable de no escribir con esa horrible letra chillona, ademas esos problemas de tu celu seguramente se deben al so del mismo que si no estoi mal es symbian, cosa que no tiene nada que ver con java y mucho menos con desarrollo de software. Mejor pasate por aqui

http://www.laneros.com/forumdisplay.php?f=43

offtopicy deja de escribir en rojo que parece una alarma de atentado terrorista...........:llamas:..offtopic
 
Ayuda con actionListeners

Buenos dias

Ahora tengo otro problema y es que los actionListeners que tengo en los commandButton's no se estan activando. Les voy a mostrar mi codigo:

Este es el XHTML
Código:
<ui:composition template="./WEB-INF/layout/templateContenido.xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:f="http://java.sun.com/jsf/core">
    <ui:define name="PanelContenido">
        <div id="encuestaDiv">
            <h2>
                Encuesta
            </h2>
            <a4j:form>
                <ul>
                    <li>
                        <h4>
                            Texto
                        </h4>
                        <h:inputTextarea rows="4" value="#{BBEncuesta.encuestaActual.pregEnc}"/>
                    </li>
                    <li>
                        <h4>
                            Opciones
                        </h4>
                        <table>
                            <tr id="encTitulo">
                                <td>
                                    <h:inputText value="#{BBEncuesta.respuestaActual}"/>
                                </td>
                                <td>
                                    <a4j:commandButton value="Guardar" actionListener="#{BBEncuesta.guardarRespuesta}"/>
                                </td>
                            </tr>
                            <a4j:repeat value="#{BBEncuesta.encuestaActual.encuestaRespuestaSet}" var="opc">
                                <tr>
                                    <td>
                                        #{opc.descResp}
                                    </td>
                                    <td>
                                        <h:commandButton value="Borrar"/>
                                    </td> 
                                </tr>
                            </a4j:repeat>
                        </table>
                    </li>
                    <li>
                        <h:commandButton value="Guardar Encuesta" styleClass="guardarEnc"
                                         action="#{BBEncuesta.guardarEncuesta}"/>
                    </li>
                </ul>
            </a4j:form>
        </div>
    </ui:define>
</ui:composition>

y este es mi metodo en el backing bean:
Código:
public void guardarRespuesta(ActionListener event){
        FacesContext context = FacesContext.getCurrentInstance();
        BBUsuario usuarioBean = (BBUsuario) context.getExternalContext().getSessionMap().get("BBUsuario");

        try {
            if (encuestaActual.getEncuestaRespuestaSet().isEmpty()) {
                encuestaActual.setEncuestaRespuestaSet(new ArrayList<EncuestaRespuesta>());
            }

            respuestaActual.setFecResp(new Date());
            respuestaActual.setCantResp(new Long(0));
            respuestaActual.setUsuario(usuarioBean.getUsuario());
            respuestaActual.setEncuesta(encuestaActual);

            encuestaActual.getEncuestaRespuestaSet().add(respuestaActual);
        }
        catch (Exception e) {
            respuestaActual = new EncuestaRespuesta();
        }
    }

Este bean se llama BBEncuesta y es de request

no se si con esa info me puedan ayudar...

GRACIAS!
 
en el xhtml

<td>
a4j:commandButton value="Guardar" action="#{BBEncuesta.guardarRespuesta}"/>
<f:actionListener type="+pakete+.ActionListener_guardarR" />
</td>

y en el java

+pakete+;

import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;

public class BBEncuestaActionListener implements ActionListener{

@Override
public void guardarRespuesta(ActionEvent event)
throws AbortProcessingException {

FacesContext context = FacesContext.getCurrentInstance();
BBUsuario usuarioBean = (BBUsuario) context.getExternalContext().getSessionMap().get("BBUsuario");

try {
if (encuestaActual.getEncuestaRespuestaSet().isEmpty()) {
encuestaActual.setEncuestaRespuestaSet(new ArrayList<EncuestaRespuesta>());
}

respuestaActual.setFecResp(new Date());
respuestaActual.setCantResp(new Long(0));
respuestaActual.setUsuario(usuarioBean.getUsuario());
respuestaActual.setEncuesta(encuestaActual);

encuestaActual.getEncuestaRespuestaSet().add(respuestaActual);
}
catch (Exception e) {
respuestaActual = new EncuestaRespuesta();
}
}
}


creo q asi deberia funcionar
solo cambie el pakete y ya.... me avisa!!!!!
 
no entendi esta parte:

<f:actionListener type="+pakete+.ActionListener_guardarR" />

ActionListener_guardarR???...


y otra cosa, tu pones:

Código:
a4j:commandButton value="Guardar" action="#{BBEncuesta.guardarRespuesta}"/>
<f:actionListener type="+pakete+.ActionListener_guardarR" />

no deberia ser:

<a4j:commandButton value="Guardar" action="#{BBEncuesta.guardarRespuesta}">
<f:actionListener type="+pakete+.ActionListener_guardarR"/>
<a4j:
commandButton>

???
 
Oigan, me di cuenta que el NetBeans tiene un estilo parecido para diseñar JFrame y demás de forma parecida a Basic, eclipse y otros compiladores tienen cosas así??

y que más ventaja representa NetBeans, tiene "atajos" así con otras aplicaciones??
 
Oigan, me di cuenta que el NetBeans tiene un estilo parecido para diseñar JFrame y demás de forma parecida a Basic, eclipse y otros compiladores tienen cosas así??

y que más ventaja representa NetBeans, tiene "atajos" así con otras aplicaciones??

El JCreator Pro, eclipse también manejan atajos o mejor dicho te facilitan a la hora de ingresar código, utilizo mas Jcreator es mucho mas rápido a la hora de compilar largas lineas de código, ademas netbeans es mas profesional....
 
Jcreator no era para empezar?? me habian dicho que es muy limitado, se pueden hacer ventanas como lo puedo hacer en NetBeans?? sabes algun atajo así men??
 
Jcreator es bueno para manejar código pero para diseñar UI y asociarle comportamientos es mejor mirar otra solución como NetBeans o Eclipse.
 
Jcreator es bueno para manejar código pero para diseñar UI y asociarle comportamientos es mejor mirar otra solución como NetBeans o Eclipse.

ah!! entonces GUI va mejor con Netbeans, bien, hey y que otros compiladores hay de java?? solo por saber, y alguien sabe más trucos de netbeans, solo atajos, solo datos interesantes, cosas que uno descubre como por maña o algo asi.
 
ah!! entonces GUI va mejor con Netbeans, bien, hey y que otros compiladores hay de java?? solo por saber, y alguien sabe más trucos de netbeans, solo atajos, solo datos interesantes, cosas que uno descubre como por maña o algo asi.

Si sabes tirar código en Jcreator, Netbeans no te quedara grande, así de sencillo.
Precisamente Netbeans facilita el ingreso de código, no hay que ponerse a tirar linea por linea, pero si recomiendo que si estas empezando empieces por hay,.... Netbeans mecaniza todo.....
A la hora de ventanas y vistas, netbeans y eclipse llevan la ventaja.
 
Si sabes tirar código en Jcreator, Netbeans no te quedara grande, así de sencillo.
Precisamente Netbeans facilita el ingreso de código, no hay que ponerse a tirar linea por linea, pero si recomiendo que si estas empezando empieces por hay,.... Netbeans mecaniza todo.....
A la hora de ventanas y vistas, netbeans y eclipse llevan la ventaja.

oh no tranquilo, no soy novato, yo entiendo bastante, es que me gusto lo de diseñar JFrame tal si fuera Visual Basic, por eso aproveche para preguntar cosas asi, no soy un experto (de hecho estoy jodido tratando de ingresar objetos a un arraylist, nada grave pero no me quiere imprimir
y tampoco puedo imprimir en un textArea un archivo .txt serializable, eso me mortifica pero ahi voy)

solo queria saber cosas asi. vale, de todas maneras,

que es mejor JDeveloper o NetBeans, porque comparando NetBeans y Eclipse, NetBeans Arrasa, lo unico que me gusta de Eclipse es que es portable sin comer mucha memoria
 
oh no tranquilo, no soy novato, yo entiendo bastante, es que me gusto lo de diseñar JFrame tal si fuera Visual Basic, por eso aproveche para preguntar cosas asi, no soy un experto (de hecho estoy jodido tratando de ingresar objetos a un arraylist, nada grave pero no me quiere imprimir
y tampoco puedo imprimir en un textArea un archivo .txt serializable, eso me mortifica pero ahi voy)

solo queria saber cosas asi. vale, de todas maneras,

que es mejor JDeveloper o NetBeans, porque comparando NetBeans y Eclipse, NetBeans Arrasa, lo unico que me gusta de Eclipse es que es portable sin comer mucha memoria

Creo que JDeveloper es el mejor IDE para trabajar con Java. Ya trae UML, conectividad con base de datos, diseñador de GUI gráficamente y por código, y un largo etcétera.
Para los que usamos Mac, la única pega de JDeveloper es la instalación en Mac OS X, que requiere ejecutar ciertas cosas en terminal antes de la instalación. Por lo demás me parece un IDE excelente a pesar del poco tiempo que llevo manejándolo.
 

Los últimos temas