null return when trying to persist data

Asked

Viewed 114 times

0

I’m having problems registration and search system while persisting in saving method of the null return, I already switched to @viewscoped my bean but nothing, debugged project and nothing, I can not identify error, I am starting in web java programming caught a lot already I thank.ao realizing debug gave field interruption Registersservice.serialVersionUID put as modification no more solved.

log error:

Initialized. Hibernate: selectcategoria0_.id as id1_0_, categoria0_.categoria_pai_id as categori3_0_, categoria0_.Description as descrica2_0_ from category categoria0_Wherecategoria0_.categoria_pai_id is null Hibernate: select categoria0_.id as id1_0_0_, categoria0_.categoria_pai_id as categori3_0_0_, categoria0_.Descricao as descrica2_0_0_, categoria1_.id as id1_0_1_, categoria1_.categoria_pai_id as categori3_0_1_, categoria1_.Description as descrica2_0_1_ from category categoria0_ left Outer Join category categoria1_ on categoria0_.categoria_pai_id=categoria1_.id Where categoria0_.id=? subcategory.... Hibernate: selectcategoria0_.id as id1_0_, categoria0_.categoria_pai_id as categori3_0_, categoria0_.Description as descrica2_0_ from category categoria0_ Where categoria0_.categoria_pai_id=? Initialized. jul 20, 2016 4:27:19 pm com.sun.faces.application.view.Faceletviewhandlingstrategy handleRenderException GRAVE: Error Rendering View[/products/Product Registration.xhtml] javax.el.Propertynotfoundexception: /products/Product Registration.xhtml @54,101 value="#{cadasProductBean.producto.categoria}": Target Unreachable, 'product' returned null at com.sun.faces.facelets.el.TagValueExpression.getType(Tagvalueexpression.java:100) at org.primefaces.renderkit.InputRenderer.findImplicitConverter(Inputrenderer.java:160) at org.primefaces.renderkit.InputRenderer.getOptionAsString(Inputrenderer.java:146) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeOption(Selectonemenurenderer.java:378) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeSelectItems(Selectonemenurenderer.java:364) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeInput(Selectonemenurenderer.java:146) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeMarkup(Selectonemenurenderer.java:93) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeEnd(Selectonemenurenderer.java:67) 16:27:19.390 [http-bio-8080-exec-41] ERROR com.oliveira.pedidovenda.util.jsf.JsfExceptionHandler - Erro de sistema: /produtos/CadastroProduto.xhtml @54,101 value="#{cadastroProdutoBean.produto.categoria}": Target Unreachable, 'produto' returned null at javax.faces.Component.UIComponentBase.encodeEnd(Uicomponentbase.java:920) at javax.faces.Component.UIComponent.encodeAll(Uicomponent.java:1863) at com.sun.faces.context.Partialviewcontextimpl$Phaseawarevisitcallback.visit(Partialviewcontextimpl.java:582) javax.el.Propertynotfoundexception: /products/Product Registration.xhtml @54,101 value="#{cadasProductBean.producto.categoria}": Target Unreachable, 'product' returned null com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(Partialvisitcontext.java:183) at com.sun.faces.facelets.el.TagValueExpression.getType(Tagvalueexpression.java:100) ~[javax.faces-2. 2.8-15.jar:2.2.8-15] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1689) at org.primefaces.renderkit.InputRenderer.findImplicitConverter(Inputrenderer.java:160) ~[primefaces-5.3. jar:5.3] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1700) at org.primefaces.renderkit.InputRenderer.getOptionAsString(Inputrenderer.java:146) ~[primefaces-5.3. jar:5.3] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1700) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeOption(Selectonemenurenderer.java:378) ~[primefaces-5.3. jar:5.3] at javax.faces.Component.UIForm.visitTree(Uiform.java:371) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeSelectItems(Selectonemenurenderer.java:364) ~[primefaces-5.3. jar:5.3] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1700) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeInput(Selectonemenurenderer.java:146) ~[primefaces-5.3. jar:5.3] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1700) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeMarkup(Selectonemenurenderer.java:93) ~[primefaces-5.3. jar:5.3] at com.sun.faces.context.Partialviewcontextimpl.processComponents(Partialviewcontextimpl.java:403) at org.primefaces.Component.selectonemenu.Selectonemenurenderer.encodeEnd(Selectonemenurenderer.java:67) ~[primefaces-5.3. jar:5.3] javax.faces.Component.UIComponentBase.encodeEnd(Uicomponentbase.java:920) ~[javax.faces-2. 2.8-15.jar:2.2.8-15] at javax.faces.Component.UIComponent.encodeAll(Uicomponent.java:1863) ~[javax.faces-2. 2.8-15.jar:2.2.8-15] at com.sun.faces.context.Partialviewcontextimpl$Phaseawarevisitcallback.visit(Partialviewcontextimpl.java:582) ~[javax.faces-2. 2.8-15.jar:2.2.8-15] at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(Partialvisitcontext.java:183) ~[javax.faces-2. 2.8-15.jar:2.2.8-15] at javax.faces.Component.UIComponent.visitTree(Uicomponent.java:1689) ~[javax.faces-2. 2.8-15.jar:2.2.8-15]

at org.apache.el.parser.AstValue.getTarget(AstValue.java:148) ~[jasper-el.jar:7.0.70]
at org.apache.el.parser.AstValue.getType(AstValue.java:82) ~[jasper-el.jar:7.0.70]
at org.apache.el.ValueExpressionImpl.getType(ValueExpressionImpl.java:171) ~[jasper-el.jar:7.0.70]
at org.jboss.weld.el.WeldValueExpression.getType(WeldValueExpression.java:93) ~[weld-servlet-2.3.2.Final.jar:2.3.2.Final]
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:98) ~[javax.faces-2.2.8-15.jar:2.2.8-15]
... 52 more

Listening for transport dt_shmem at address: tomcat_shared_memory_id

1 answer

0

From what I understood in the log, the problem is not at the moment of persistence, but when you access the product registration page and there is not yet a product selected, #{registersProductBean.product} is null at this time, and you have a component selectOneMenu pointing to #{register productBean.producto.categoria}.

A viable solution is to display components only when #{registersProductBean.product} is not null.

An idea:

<h:form>
    <p:commandButton action="#{cadastroProdutoBean.selecionarProduto}"
                     update="@form" />

    <h:panelGrid rendered="#{not empty cadastroProdutoBean.produto}">
        <!-- Componentes do form: categoria, etc -->
    </h:panelGrid>
</h:form>
  • hello Victor, I didn’t necessarily understand how it would be!?

Browser other questions tagged

You are not signed in. Login or sign up in order to post.