2017-01-09 81 views
1

树在选择节点时抛出异常,在backinbean中它会发送正确节点的值。但是这个例外不是来自哪里。primefaces在选择节点时树会抛出异常

日志:

信息:java.lang.IllegalArgumentException异常:无法将类型类org.primefaces.model.DefaultTreeNode的Territorio IV类com.delisa.ejb.util.utls.GrupoUtil 的Java。 lang.IllegalArgumentException:无法将类org.primefaces.model.DefaultTreeNode的Territorio IV转换为类com.delisa.ejb.util.utls.GrupoUtil at com.sun.el.lang.ELSupport.coerceToType(ELSupport.java:424 ) at com.sun.el.lang.ELSupport.coerceToType(ELSupport.java:382) at com.sun.el.parser.AstValue.setValue(AstValue.java:248) at com.sun.el. ValueExpressionImpl.setValue(ValueExpressionImpl.java:294) 在org.jboss.weld.el.WeldValueExpression.setValue(WeldValueExpression.java:64) 在com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java: 131) 在org.primefaces.component.api.UITree.updateSelection(UITree.java:524) 在org.primefaces.component.api.UITree.processUpdates(UITree.java:490) 在org.primefaces.component。 tree.Tree.processUpdates(Tree.java:425) at com.sun.faces.context.PartialViewContextImpl $ PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:577) at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback( PartialVisitContext.java:183) at org.primefaces.component.api.UITree.visitTree(UITree.java:738)(UIComponent.visitTree)(UIComponent.java:1700) at javax.faces.component.UIForm.visitTree(UIForm.java:371) at javax.faces.component.UIComponent.visitTree(UIComponent。的java:1700) 在javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) 在javax.faces.component.UIComponent.visitTree(UIComponent.java:1700) 在com.sun.faces.context。 PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403) 在com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:266) 在org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57) 在javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1252) at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle。 LifecycleImpl.execute(LifecycleImpl.java:198) 在javax.faces.webapp.FacesServlet.service(FacesServlet.java:654) 在org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:344) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) at com.delisa.jsf.util.NoCacheFilter。 doFilter(NoCacheFilter.java:38) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.jav一:256) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:316) 在org.apache。 catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline。 java:673) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline。的java:99) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 在org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 在org.apache。 catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) at com.sun.enterprise.v3.services.impl.ContainerMapper $ HttpHandlerCallable.call(ContainerMapper.java:459) at com.sun.enterprise.v3。 services.impl.ContainerMapper.service(ContainerMapper.java:167) at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) at org.glassfish.grizzly.http.server.HttpHandler。 doHandle(HttpHandler.java:180) at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) at o rg.glassfish.grizzly.filterchain.ExecutorResolver $ 9.execute(ExecutorResolver.java:119) at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283) at org.glassfish.grizzly.filterchain.DefaultFilterChain .executeChainPart(DefaultFilterChain.java:200) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132) 在org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) at org.glassfish.grizzly.strategies.AbstractIOStrategy .fireIOEvent(AbstractIOStrategy.java:112) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access $ 100(WorkerThreadIOStrategy.java:56) at org.glassfish.grizzly.strategies .WorkerThreadIOStrategy $ WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.doWork(AbstractThreadPool.java:591) at org.glassfish.grizzly.threadpool.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:571) 在java.lang.Thread.run(Thread.java:745)

Advertencia:java.lang.IllegalArgumentException异常:无法转换型类org.primefaces.model.DefaultTreeNode的Territorio IV至class com.delisa.ejb.util。 utls.GrupoUtil

我XHTML页面

<p:dialog responsive="true" dynamic="true" showEffect="fade" resizable="false" appendTo="@(body)" modal="true" position="center top" style="margin-top: 50px" 
 
          id="dialogInt" header="Seleccione donde desea moverlo" widgetVar="dialogGruph" width="600" height="600" closeOnEscape="true"> 
 
        <h:form id="frmGrupph"> 
 
         <div class="Container100"> 
 

 
          <div class="ContainerIndent"> 
 
           <p:tree id="treeEstrucph" styleClass="Wid100" value="#{mBEstructura.rootParentChange}" var="nodepc" 
 
              selectionMode="single" selection="#{mBEstructura.selectedParentchange}" >  
 

 
            <p:ajax event="select" update=":frmGrupph" listener="#{mBEstructura.parentChange}" /> 
 
                   
 

 
            <p:treeNode expandedIcon="ui-icon-folder-open" collapsedIcon="ui-icon-folder-collapsed"> 
 
             <h:outputText value="#{nodepc}"/> 
 
            </p:treeNode> 
 
           </p:tree> 
 
          </div>  
 
         </div> 
 

 

 
         
 
         <p:blockUI block="treeEstrucph" trigger="treeEstrucph" /> 
 
        </h:form> 
 
       </p:dialog> 

最后我backingbean

public void parentChange(NodeSelectEvent event) throws Exception { 
    try { 
     JbGrupos ep = (JbGrupos) event.getTreeNode().getData(); 
     /** 
     * 
     */ 

    } catch (Exception e) { 
     JsfUtil.addErrorMessage(e, "Error: parentChange() " + e.getMessage()); 
    } 
} 
+0

检查您在树中使用的不同类型的对象 –

+0

请添加您在树中使用的不同类型的对象(r​​ootParentChange,selectedParentchange ...) –

+0

Gracias @YagamiLight ... eso es todo ... – meyquel

回答

1

,你在你的树面临的问题的对象类型你在树中使用的不同元素,检查你将要树的每个元素发现错误(在这种情况下,你成功地做到了这一点)。

即使树构造有树节点类型可以例如它结合于其它类型的

treeConstruct = new DefaultTreeNode(new client(), null); 

每个您在树使用节点可以选择和使用的客户端数据

希望对你有所帮助。