Hi,
I built a navigation like the one in the tobago examples. But I get
the following error:
19:53:21,601 INFO [NavigationController] action = 'edit/editFuelling'
19:53:21,608 ERROR [[jsp]] Servlet.service() for servlet jsp threw
exception
java.lang.ClassCastException:
org.apache.myfaces.tobago.component.UICommand
at
org.apache.myfaces.taglib.core.VerbatimTag.doAfterBody(VerbatimTag.java:76)
at
org.apache.jsp.fuelmaster.navigator_jsp._jspx_meth_f_verbatim_1(org.apache.jsp.fuelmaster.navigator_jsp:372)
at
org.apache.jsp.fuelmaster.navigator_jsp._jspService(org.apache.jsp.fuelmaster.navigator_jsp:136)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
at
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
at
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
at
org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_tc_cell_1(org.apache.jsp.tag.web.layout.fuelmaster_tag:335)
at
org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_tc_page_0(org.apache.jsp.tag.web.layout.fuelmaster_tag:197)
at
org.apache.jsp.tag.web.layout.fuelmaster_tag._jspx_meth_f_view_0(org.apache.jsp.tag.web.layout.fuelmaster_tag:123)
at
org.apache.jsp.tag.web.layout.fuelmaster_tag.doTag(org.apache.jsp.tag.web.layout.fuelmaster_tag:78)
at
org.apache.jsp.intro_jsp._jspx_meth_layout_fuelmaster_0(org.apache.jsp.intro_jsp:84)
at
org.apache.jsp.intro_jsp._jspService(org.apache.jsp.intro_jsp:62)
at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
at
org.apache.myfaces.tobago.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:117)
at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
My navigator.jsp contains the following:
<%@ page import="javax.faces.context.FacesContext"%>
<%@ taglib uri="http://myfaces.apache.org/tobago/component"
prefix="tc" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<f:subview id="navigator" >
<tc:panel>
<f:facet name="layout">
<tc:gridLayout columns="10px;1*"
rows="fixed;fixed;fixed;1*" />
</f:facet>
<%
// FIXME: this hotfix ensures that, "navigationController" is
available
// for JSTL-Tags
FacesContext facesContext = FacesContext.getCurrentInstance();
facesContext.getApplication().getVariableResolver()
.resolveVariable(facesContext, "navigationController");
%>
<%-- row 0 --%>
<f:verbatim>
<c:if test='${navigationController.currentPage == "intro"}'>
<tc:image value="image/navigate-pointer.gif" width="16px"
height="16px" />
</c:if>
</f:verbatim>
<tc:link action="intro" immediate="true"
actionListener="#{navigationController.navigate}"
label="#{mainBundle.intro}" />
<%-- row 1 --%>
<f:verbatim>
<c:if test='${navigationController.currentPage ==
"edit/editFuelling"}'>
<tc:image value="image/navigate-pointer.gif" width="16px"
height="16px" />
</c:if>
</f:verbatim>
<tc:link action="edit/editFuelling" immediate="true"
actionListener="#{navigationController.navigate}"
label="#{mainBundle.intro}" />
<%-- row (n - 1) --%>
<tc:cell spanX="2">
<f:verbatim>
<hr width="80%"/>
</f:verbatim>
</tc:cell>
<%-- row n --%>
<tc:cell spanX="2"/>
</tc:panel>
</f:subview>
I'm running on JBoss 4.0.4RC1 with the bundled tomcat on SuSE Linux
10, amd64.
The generated navigator_jsp.java class contains the following method:
*private* boolean
_jspx_meth_f_verbatim_1(javax.servlet.jsp.tagext.JspTag
_jspx_th_tc_panel_0, PageContext _jspx_page_context)
*throws* *Throwable* {
PageContext pageContext = _jspx_page_context;
JspWriter out = _jspx_page_context.getOut();
/// f:verbatim/
org.apache.myfaces.taglib.core.VerbatimTag _jspx_th_f_verbatim_1 =
(org.apache.myfaces.taglib.core.VerbatimTag)
_jspx_tagPool_f_verbatim.get(org.apache.myfaces.taglib.core.VerbatimTag.class);
_jspx_th_f_verbatim_1.setPageContext(_jspx_page_context);
_jspx_th_f_verbatim_1.setParent((javax.servlet.jsp.tagext.Tag)
_jspx_th_tc_panel_0);
int _jspx_eval_f_verbatim_1 = _jspx_th_f_verbatim_1.doStartTag();
*if* (_jspx_eval_f_verbatim_1 !=
javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
*if* (_jspx_eval_f_verbatim_1 !=
javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
out = _jspx_page_context.pushBody();
_jspx_th_f_verbatim_1.setBodyContent((javax.servlet.jsp.tagext.BodyContent)
out);
_jspx_th_f_verbatim_1.doInitBody();
}
*do* {
out.write("\n");
out.write(" ");
*if* (_jspx_meth_c_if_1(_jspx_th_f_verbatim_1,
_jspx_page_context))
*return* *true*;
out.write("\n");
out.write(" ");
int evalDoAfterBody = _jspx_th_f_verbatim_1.doAfterBody();
*if* (evalDoAfterBody !=
javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
*break*;
} *while* (*true*);
*if* (_jspx_eval_f_verbatim_1 !=
javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE)
out = _jspx_page_context.popBody();
}
*if* (_jspx_th_f_verbatim_1.doEndTag() ==
javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
_jspx_tagPool_f_verbatim.reuse(_jspx_th_f_verbatim_1);
*return* *true*;
}
_jspx_tagPool_f_verbatim.reuse(_jspx_th_f_verbatim_1);
*return* *false*;
}
line 372 beeing
int evalDoAfterBody = _jspx_th_f_verbatim_1.doAfterBody();
Is this a tobago issue, a myfaces issue or a "beginners" issue?
Regards,
Stefan.