Hello Matthias:
Thanks for your support. I will update you about my progress as we go along. Further information and the exception printout is below:
Matthias Wessendorf wrote:
<>Hi BaTien, thanks for using MyFaces. My comments are intermixed Yes, it seams that, for now you could not use a tile, that is refered by a tile. Do you got any more info on that?
Yes. I actually use global rule with and without2.1) <h:commandButton> and <h:commandLink> are identically rendered (by looking at the page source - obviously with different component Ids) under the fragments of the page layout and fragments inserted by tiles. However, a click on <h:commandButton> and <h:commandLink> in the fragment inserted by tiles displays the same page. This means command actionListenner and action are skipped.
Have you tried navigation-rules without <from-view-id/> element:
<navigation-rule> <navigation-case> <from-outcome>myOutcome</from-outcome> <to-view-id>/yetAnotherJSP.jsp</to-view-id> </navigation-case> </navigation-rule>
Since your page is composed via Tiles you may use *global* navigation rulez. Those rules are not
specific to a special viewId (eg. myNavigationSite.jsp)
<from-view-id>*</from-view-id>
Since my <servlet-mapping> is *.jsf so i use /yetAnotherJSP.jsf and myfaces tiles implementation translate into /jetAnotherJSP.tiles
yes, that isn't using faces-config.xml for navigation
This temporary solution goes against the reason why tiles is used in the first place.
3) Using the temporary solution as explained in 2.3, i experiment with dynamically generated portal tabs. The servlet dispatcher consistently throw ClassCastException for the last tab, while the same thing under 2.1 and 2.2 (i.e. jsf action and actionListener are NOT properly picked up) is stable and work properly. The root cause may then be the way how jsf is implemented. I hope this can be quickly patched and let us enjoy the fruit of Jsf + Tiles.
Could you please provide abit more of stracktrace
for this case?
Thanks, Matthias
The exception is in the enclosed catalina.out
Our custom portal tabs is actually constructed based on myfaces examples with html myfaces dependencies removed. The layout is done at the last common portion for all tabs. The dynamic tabs are constructed with a placeholder of 8 tabs, out of which 4 tabs are actually generated. Exception is happened in the last tab if the page is generated without using tiles layout (i.e. use path rather than extends another tiles). As previously indicated, using tiles layout there is NO exception of the last tab. There is also no exception in the last tab, if i switch to a page that uses tiles layout before hitting the last tab. Also enclosed next is a summary of the exception.
*exception*
javax.servlet.ServletException: org.apache.jasper.JasperException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:125)
net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)*root cause*
javax.faces.FacesException: org.apache.jasper.JasperException
net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:414)
net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178)
net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)*note*
Dec 28, 2004 4:06:14 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-80
Dec 28, 2004 4:06:15 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-443
Dec 28, 2004 4:06:15 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3973 ms
Dec 28, 2004 4:06:15 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Dec 28, 2004 4:06:15 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.0.28
Dec 28, 2004 4:06:15 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Dec 28, 2004 4:06:23 PM org.apache.catalina.core.StandardHost getDeployer
INFO: Create Host deployer for direct deployment ( non-jmx )
Dec 28, 2004 4:06:23 PM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /pluto from URL
file:/apps/tomcat-5/webapps/pluto
Dec 28, 2004 4:06:24 PM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /testsuite from URL
file:/apps/tomcat-5/webapps/testsuite
Dec 28, 2004 4:06:24 PM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /myfaces-examples from URL
file:/apps/tomcat-5/webapps/myfaces-examples
2004-12-28 16:06:26,038 [main] INFO
net.sourceforge.myfaces.config.FacesConfigurator - Reading standard config
net/sourceforge/myfaces/resource/standard-faces-config.xml
2004-12-28 16:06:27,402 [main] INFO
net.sourceforge.myfaces.config.FacesConfigurator - Reading config
jar:file:/apps/tomcat-5/temp/myfaces63973.jar!/META-INF/faces-config.xml
2004-12-28 16:06:27,970 [main] INFO
net.sourceforge.myfaces.config.FacesConfigurator - Reading config
/WEB-INF/examples-config.xml
2004-12-28 16:06:29,110 [main] INFO
net.sourceforge.myfaces.webapp.StartupServletContextListener - ServletContext
'/apps/tomcat-5/webapps/myfaces-examples/' initialized.
Dec 28, 2004 4:06:29 PM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /jsf-cardemo from URL
file:/apps/tomcat-5/webapps/jsf-cardemo
Dec 28, 2004 4:06:32 PM com.sun.faces.config.rules.NavigationRuleRule end
WARNING: [NavigationRuleRule]{faces-config/navigation-rule}
Merge(/confirmChoices.jsp)
Dec 28, 2004 4:06:32 PM org.apache.catalina.core.StandardHostDeployer install
INFO: Installing web application at context path /struts-shale-mailreader from
URL file:/apps/tomcat-5/webapps/struts-shale-mailreader
Dec 28, 2004 4:06:36 PM
org.apache.shale.examples.mailreader.ApplicationListener contextInitialized
INFO: Initializing memory database plug in from '/WEB-INF/database.xml'
Dec 28, 2004 4:06:36 PM org.apache.shale.faces.ShaleApplicationFilter init
INFO: Initializing Shale application filter
Dec 28, 2004 4:06:36 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-80
Dec 28, 2004 4:06:36 PM org.apache.coyote.tomcat5.MapperListener registerEngine
WARNING: Unknown default host: localhost
Dec 28, 2004 4:06:37 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-443
Dec 28, 2004 4:06:37 PM org.apache.coyote.tomcat5.MapperListener registerEngine
WARNING: Unknown default host: localhost
Dec 28, 2004 4:06:37 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 22921 ms
Stripped url: dev2.dbgroups.com
javax.faces.FacesException: org.apache.jasper.JasperException
at
net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:414)
at
net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178)
at
net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:417)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.jasper.JasperException
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at
net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:404)
... 34 more
org.apache.jasper.JasperException
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at
net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:404)
at
net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178)
at
net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:417)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
java.lang.ClassCastException
at
net.sourceforge.myfaces.taglib.core.VerbatimTag.doAfterBody(VerbatimTag.java:76)
at
org.apache.jsp.public_.myb2cb2b.welcome_jsp._jspx_meth_f_verbatim_2(welcome_jsp.java:2547)
at
org.apache.jsp.public_.myb2cb2b.welcome_jsp._jspx_meth_f_subview_13(welcome_jsp.java:2451)
at
org.apache.jsp.public_.myb2cb2b.welcome_jsp._jspx_meth_h_panelGrid_9(welcome_jsp.java:2389)
at
org.apache.jsp.public_.myb2cb2b.welcome_jsp._jspx_meth_f_subview_12(welcome_jsp.java:2346)
at
org.apache.jsp.public_.myb2cb2b.welcome_jsp._jspService(welcome_jsp.java:548)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
at
net.sourceforge.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:404)
at
net.sourceforge.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:178)
at
net.sourceforge.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:287)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:110)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
net.sourceforge.myfaces.custom.fileupload.MultipartFilter.doFilter(MultipartFilter.java:88)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:417)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
