2015-07-10 2 views
0

Я пытаюсь использовать реализацию дерева RichFaces. Я подклассифицировал класс TreeNodeImpl - ниже мой суперкласс класса декоратора. Я получаю вышеуказанную ошибку. Конечно, я не реализует javax.swing.tree.TreeNode - Я реализую org.richfaces.model.TreeNodeRichFaces TreeNode - невозможно передать в javax.swing.tree.TreeNode

package com.base.view.tree; 

import org.richfaces.model.TreeNode; 
import org.richfaces.model.TreeNodeImpl; 

import com.iLearn.model.base.Typed; 

public abstract class TreeNodeDecorator<T extends Typed> extends TreeNodeImpl implements TreeNode { 

    public TreeNodeDecorator(T theData) { 
     super(); 
     setData(theData); 
    } 

    private T data; 
    public abstract String getDisplayString(); 
    public abstract boolean isLeaf(); 

    public T getData() { 
     return data; 
    } 

    public void setData(T theData) { 
     data = theData; 
    } 

    public String getType() { 
     return getData().getType(); 
    } 
} 

здесь файл XHTML:

<?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" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:rich="http://richfaces.org/rich" 
    xmlns:t="http://myfaces.apache.org/tomahawk" 
    xmlns:cust="http://memarden.com"> 

<link href="CSS/navigation.css" rel="stylesheet" type="text/css" /> 

<h:body> 
    <h3>#{text['organization']}</h3> 
    <ui:composition template="template-restricted.xhtml"> 
     <ui:define name="body_content"> 
      <div class="sl-title">Manage Schools</div> 
      <div class="sr-content"> 
      <h:form> 
       <h:commandButton class="k-button" 
            value="create New Sub Org" 
            action="#{manageOrgHierarchy.createNew}"/> 
       <rich:tree 
         id="orgTree" 
         value="#{manageOrgHierarchy.rootNodes}" 
         style="width:300px" 
         selectionType="ajax" 
         selectionChangeListener="manageOrgHierarchy.processTreeSelectionChange" 
         var="node"> 
        <rich:treeNode><rich:inplaceInput value="#{node.data.nickName}" defaultLabel="click to edit"/></rich:treeNode> 
       </rich:tree> 
       <h:commandButton class="k-button" 
            value="create New Root Org" 
            action="#{manageOrgHierarchy.createNew()}" 
            rendered="#{userSession.isAdmin}"/> 
       <h:commandButton class="k-button" 
            value="#{text['save']}" 
            action="#{manageOrgHierarchy.save}"/> 
      </h:form> 
     </div> 


     </ui:define> 
    </ui:composition> 
</h:body> 
</html> 

Вот трассировки стека:

Jul 11, 2015 11:49:12 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException 
SEVERE: Error Rendering View[/restricted/memes/manageSchools.xhtml] 
java.lang.ClassCastException: com.iLearn.view.tree.OrganizationRichFacesTreeNode cannot be cast to javax.swing.tree.TreeNode 
    at org.richfaces.model.SwingTreeNodeDataModelImpl.isLeaf(SwingTreeNodeDataModelImpl.java:91) 
    at org.richfaces.component.AbstractTree.isLeaf(AbstractTree.java:441) 
    at org.richfaces.component.TreeRange.shouldIterateChildren(TreeRange.java:54) 
    at org.richfaces.component.AbstractTree.walkModelChildren(AbstractTree.java:508) 
    at org.richfaces.component.AbstractTree.walkModelChildren(AbstractTree.java:526) 
    at org.richfaces.component.AbstractTree.walkModel(AbstractTree.java:500) 
    at org.richfaces.renderkit.TreeEncoderBase.encodeTree(TreeEncoderBase.java:90) 
    at org.richfaces.renderkit.TreeEncoderFull.encode(TreeEncoderFull.java:41) 
    at org.richfaces.renderkit.TreeRendererBase.encodeTree(TreeRendererBase.java:85) 
    at org.richfaces.renderkit.html.TreeRenderer.doEncodeChildren(TreeRenderer.java:129) 
    at org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:158) 
    at javax.faces.component.UIComponentBase.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.render.Renderer.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponentBase.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:169) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source) 
    at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source) 
    at javax.faces.webapp.FacesServlet.service(Unknown Source) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.iLearn.security.authentication.AccessFilter.doFilter(AccessFilter.java:49) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.iLearn.utils.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:34) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) 
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 

Jul 11, 2015 11:49:12 PM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/ilearn] threw exception [com.iLearn.view.tree.OrganizationRichFacesTreeNode cannot be cast to javax.swing.tree.TreeNode] with root cause 
java.lang.ClassCastException: com.iLearn.view.tree.OrganizationRichFacesTreeNode cannot be cast to javax.swing.tree.TreeNode 
    at org.richfaces.model.SwingTreeNodeDataModelImpl.isLeaf(SwingTreeNodeDataModelImpl.java:91) 
    at org.richfaces.component.AbstractTree.isLeaf(AbstractTree.java:441) 
    at org.richfaces.component.TreeRange.shouldIterateChildren(TreeRange.java:54) 
    at org.richfaces.component.AbstractTree.walkModelChildren(AbstractTree.java:508) 
    at org.richfaces.component.AbstractTree.walkModelChildren(AbstractTree.java:526) 
    at org.richfaces.component.AbstractTree.walkModel(AbstractTree.java:500) 
    at org.richfaces.renderkit.TreeEncoderBase.encodeTree(TreeEncoderBase.java:90) 
    at org.richfaces.renderkit.TreeEncoderFull.encode(TreeEncoderFull.java:41) 
    at org.richfaces.renderkit.TreeRendererBase.encodeTree(TreeRendererBase.java:85) 
    at org.richfaces.renderkit.html.TreeRenderer.doEncodeChildren(TreeRenderer.java:129) 
    at org.richfaces.renderkit.RendererBase.encodeChildren(RendererBase.java:158) 
    at javax.faces.component.UIComponentBase.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.render.Renderer.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponentBase.encodeChildren(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at javax.faces.component.UIComponent.encodeAll(Unknown Source) 
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(Unknown Source) 
    at com.sun.faces.application.view.MultiViewHandler.renderView(Unknown Source) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:169) 
    at javax.faces.application.ViewHandlerWrapper.renderView(Unknown Source) 
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source) 
    at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source) 
    at com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source) 
    at javax.faces.webapp.FacesServlet.service(Unknown Source) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:357) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.iLearn.security.authentication.AccessFilter.doFilter(AccessFilter.java:49) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.iLearn.utils.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:34) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658) 
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:745) 
+0

Замечательная ... публикация, где вы получите эту ошибку, будет очень полезной (stacktrace) – Kukeltje

+0

RF 4.5 добавлена ​​модель дерева Swing для поддерживаемых моделей компонентов дерева. Видимо, что-то там не получилось. – BalusC

+0

Я создал альтернативный суперкомпьютер декоратора, который реализует javax.swing.tree.TreeNode. Это позволяет избежать вышеуказанной ошибки, хотя я вынужден реализовать Enumerator (код в классе swing выглядит старым). Однако я не получаю выбранное событие. – Ramesh

ответ

0

Это похоже на ошибку в коде RichFaces, пока я не узнаю о разработчике RichFaces, который говорит иначе. Я перепроектировал дерево в PrimeFaces, и теперь он отлично работает.

Смежные вопросы