PrimeFaces 6.0RC2: from pe:layout to p:layout

UI Components for JSF
Post Reply
smithh032772
Posts: 6144
Joined: 10 Sep 2011, 21:10

29 Apr 2016, 17:14

I am migrating from PrimeFaces Extensions pe:layout to PrimeFaces p:layout, and I am getting the error below. Hmmm...

Code: Select all

SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/...] threw exception [org.primefaces.component.outputpanel.OutputPanel cannot be cast to org.primefaces.component.layout.Layout] with root cause
java.lang.ClassCastException: org.primefaces.component.outputpanel.OutputPanel cannot be cast to org.primefaces.component.layout.Layout
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeHeader(LayoutUnitRenderer.java:79)
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:42)
	at org.primefaces.renderkit.PrimeRendererWrapper.encodeEnd(PrimeRendererWrapper.java:80)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:89)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
	at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:65)
	at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:41)
	at org.primefaces.renderkit.PrimeRendererWrapper.encodeEnd(PrimeRendererWrapper.java:80)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
	at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:89)
	at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:72)
	at org.primefaces.component.layout.LayoutUnitRenderer.encodeEnd(LayoutUnitRenderer.java:49)
	at org.primefaces.renderkit.PrimeRendererWrapper.encodeEnd(PrimeRendererWrapper.java:80)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
	at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:554)
	at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:550)
	at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:550)
	at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:550)
	at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1891)
	at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:313)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:58)
	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:58)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:267)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.omnifaces.filter.GzipResponseFilter.doFilter(GzipResponseFilter.java:173)
	at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.mcms.pf.LoginFilter.doFilter(LoginFilter.java:222)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1757)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1716)
	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)
full page layout xhtml includes p:layout -> p:layoutUnit -> p:outputPanel (which contains nested p:layoutUnit)

Code: Select all

<?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:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:pe="http://primefaces.org/ui/extensions"
      xmlns:o="http://omnifaces.org/ui"
      xmlns:of="http://omnifaces.org/functions">

    <ui:composition>

    <p:layout id="fullPageLayout" widgetVar="layoutWidget">

        <p:layoutUnit position="north" size="90">
            <ui:include src="#{pageNavigationController.pageMenu}"/>
        </p:layoutUnit>

        <p:layoutUnit position="center">

            <!-- PrimeFaces Extensions layout required ui-layout-content to be added to styleClass; no longer needed
            <p:outputPanel id="pageContentPanel"
                           styleClass="#{layoutController.isPageWithLayoutPane(pageNavigationController.page) ? 'ui-layout-content' : null}"
                           style="#{pageNavigationController.pageContentPanelStyle}">
            -->
            <p:outputPanel id="pageContentPanel" style="#{pageNavigationController.pageContentPanelStyle}">

                <ui:include src="#{pageNavigationController.page}"/>

            </p:outputPanel>

        </p:layoutUnit>
    </p:layout>

    </ui:composition>

</html>
Last edited by smithh032772 on 29 Apr 2016, 18:39, edited 1 time in total.
Howard

PrimeFaces 6.0, Extensions 6.0.0, Push (Atmosphere 2.4.0)
TomEE+ 1.7.4 (Tomcat 7.0.68), MyFaces Core 2.2.9, JDK8
JUEL 2.2.7 | OmniFaces | EclipseLink-JPA/Derby | Chrome

Java EE 6 Tutorial|NetBeans|Google|Stackoverflow|PrimeFaces|Apache

smithh032772
Posts: 6144
Joined: 10 Sep 2011, 21:10

29 Apr 2016, 17:36

I figured it out by looking more closely at nested layout showcase example.

I needed to add another p:layout for nested layouts. That fixed it.

Code: Select all

                <p:layoutUnit position="center">
                    <p:layout>
                        <p:layoutUnit position="north" size="100">
                            <h:outputText value="Middle top unit content." />
                        </p:layoutUnit>

                        <p:layoutUnit position="south" size="100">
                            <h:outputText value="Middle south unit content." />
                        </p:layoutUnit>

                        <p:layoutUnit position="west" size="200">
                            <h:outputText value="Middle left unit content." />
                        </p:layoutUnit>

                        <p:layoutUnit position="east" size="200">
                            <h:outputText value="Middle right unit content." />
                        </p:layoutUnit>

                        <p:layoutUnit position="center">
                            <h:outputText value="Middle center unit content." />
                        </p:layoutUnit>
                    </p:layout>
                </p:layoutUnit>
Now, time to do more migrating to p:layout, need to modify CSS to get rid of all these scrollbars, center layout header title, etc... :o
Howard

PrimeFaces 6.0, Extensions 6.0.0, Push (Atmosphere 2.4.0)
TomEE+ 1.7.4 (Tomcat 7.0.68), MyFaces Core 2.2.9, JDK8
JUEL 2.2.7 | OmniFaces | EclipseLink-JPA/Derby | Chrome

Java EE 6 Tutorial|NetBeans|Google|Stackoverflow|PrimeFaces|Apache

tandraschko
PrimeFaces Core Developer
Posts: 3979
Joined: 03 Dec 2010, 14:11
Location: Bavaria, DE
Contact:

29 Apr 2016, 21:26

pe:layout and p:layout is a completely different component, it's not expected to be that easy ;)
Thomas Andraschko

PrimeFaces | PrimeFaces Extensions

Apache Member | OpenWebBeans, DeltaSpike, MyFaces, BVal, TomEE

Sponsor me: https://github.com/sponsors/tandraschko
Blog: http://tandraschko.blogspot.de/
Twitter: https://twitter.com/TAndraschko

smithh032772
Posts: 6144
Joined: 10 Sep 2011, 21:10

29 Apr 2016, 22:45

You're right, I'm thinking of keeping pe:layout instead of reverting back to p:layout. I'll just have to wait for PrimeFaces Extensions to be released/updated after PrimeFaces 6.0 final release. Thanks for the response, Thomas!
Howard

PrimeFaces 6.0, Extensions 6.0.0, Push (Atmosphere 2.4.0)
TomEE+ 1.7.4 (Tomcat 7.0.68), MyFaces Core 2.2.9, JDK8
JUEL 2.2.7 | OmniFaces | EclipseLink-JPA/Derby | Chrome

Java EE 6 Tutorial|NetBeans|Google|Stackoverflow|PrimeFaces|Apache

Post Reply

Return to “PrimeFaces”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 18 guests