Hi,
I think there is a bug regarding to <ui:component> tag.
I am using ADF Faces 10.1.3.3.0 and Facelet 1.1.14 as template framework. I create some component using <ui:component> tag so it will make easier the other developers. But when I make component ADF column tag, there is a fatal error. I succeeded to make some component like <adf:commandLink>, so I guess there is a bug in Facelet.
My snippet component as labelTextString.jspx file:
<ui:component> <af:column sortProperty="#{sortProperty}" sortable="false" headerText="#{headerText}" headerNoWrap="true"> <af:outputText value="#{value}"/> </af:column> </ui:component>
Then I registered it in *.taglib.xml:
<facelet-taglib>
<namespace>http://www.mycompany.co.id/cams/facelets</namespace>
.
.
<tag> <tag-name>labelTextString</tag-name> <source>components/labelTextString.jspx</source> </tag>
</facelet-taglib>
and the application page snippet is:
<af:table value="#{bindings.FixedDpSchemeView.collectionModel}" var="row" selectionState="#{bindings.FixedDpSchemeView.collectionModel.selectedRow}"
selectionListener="#{bindings.FixedDpSchemeView.collectionModel.makeCurrent}" rows="#{bindings.FixedDpSchemeView.rangeSize}" first="#{bindings.FixedDpSchemeView.rangeStart}" emptyText="#{bindings.FixedDpSchemeView.viewable ? 'No rows yet.' : 'Access
Denied.'}" width="100%" banding="row" bandingInterval="1">
.
.
<camsf:columnString sortProperty="DpSchemeName" headerText="#{ec['label.DpSchemeName']}" value="#{row.DpSchemeName}" />
.
.
</af:table>
</ui:composition>
When I run it I got error:
java.lang.ClassCastException: com.sun.facelets.tag.ui.ComponentRef cannot be cast to oracle.adf.view.faces.component.core.data.CoreColumn at oracle.adfinternal.view.faces.renderkit.core.xhtml.DesktopTableRenderer._renderRegularColumns(DesktopTableRenderer.java:1032) at oracle.adfinternal.view.faces.renderkit.core.xhtml.DesktopTableRenderer.renderSingleRow(DesktopTableRenderer.java:110) at oracle.adfinternal.view.faces.renderkit.core.xhtml.TableRenderer.encodeAll(TableRenderer.java:231) at oracle.adfinternal.view.faces.renderkit.core.xhtml.DesktopTableRenderer.encodeAll(DesktopTableRenderer.java:80) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169) at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624) at oracle.adf.view.faces.component.UIXCollection.encodeEnd(UIXCollection.java:456) at
oracle.adfinternal.view.faces.renderkit.RenderUtils.encodeRecursive(RenderUtils.java:54) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:242) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeAllChildren(CoreRenderer.java:265) at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:65) at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:117) at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:147) at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:60) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169) at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624) at
oracle.adfinternal.view.faces.renderkit.RenderUtils.encodeRecursive(RenderUtils.java:54) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeChild(CoreRenderer.java:242) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeAllChildren(CoreRenderer.java:265) at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.renderContent(PanelPartialRootRenderer.java:65) at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.renderContent(BodyRenderer.java:117) at oracle.adfinternal.view.faces.renderkit.core.xhtml.PanelPartialRootRenderer.encodeAll(PanelPartialRootRenderer.java:147) at oracle.adfinternal.view.faces.renderkit.core.xhtml.BodyRenderer.encodeAll(BodyRenderer.java:60) at oracle.adfinternal.view.faces.renderkit.core.CoreRenderer.encodeEnd(CoreRenderer.java:169) at oracle.adf.view.faces.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:624) at
com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:252) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249) at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:594) at oracle.adfinternal.view.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:157) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214) at
com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at id.co.sigma.cams.auth.filter.CheckLoginFilter.doFilter(CheckLoginFilter.java:39) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at id.co.sigma.cams.auth.filter.RefererAuthFilter.doFilter(RefererAuthFilter.java:33) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at id.co.sigma.cams.auth.filter.CredentialUserFilter.doFilter(CredentialUserFilter.java:32) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at id.co.sigma.cams.auth.filter.AuthorizationFilter.doFilter(AuthorizationFilter.java:73) at
com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at id.co.sigma.cams.commons.web.filters.CAMSApplicationFilter.doFilter(CAMSApplicationFilter.java:70) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:228) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:197) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:123) at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:103) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:17) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:162) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621) at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:221) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239) at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34) at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:298) at java.lang.Thread.run(Thread.java:619)
If you please tell me how is the work arround for this bug. We are in tight schedule for deliver the product.
Thank you for your attention.
Rgds,
~Herwin |