You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Stefan Hedtfeld <st...@xsoftahead.com> on 2006/04/19 20:15:52 UTC
Tobago: ClassCastException rendering navigator
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.
Re: Tobago: ClassCastException rendering navigator
Posted by Stefan Hedtfeld <st...@xsoftahead.com>.
Hi Bernd,
I removed the <f:verbatim> tags and replaced them with the <tc:image>
tag as you suggested, now it works. Thanks for the help.
Regards,
Stefan.
Bernd Bohmann schrieb:
> Oh, sorry.
>
> <f:verbatim> is not a good idea. Please switch to rendering of jsf
> UIComponents with the rendered attribute.
>
> <tc:image value="image/navigate-pointer.gif" width="16px"
> height="16px" rendered= "#{navigationController.currentPage ==
> 'edit/editFuelling'}"/>
>
> or
> rendered="#{facesContext.viewRoot.viewId == '/list.xml'"
>
> Regards
>
> Bernd
>
>
Re: Tobago: ClassCastException rendering navigator
Posted by Bernd Bohmann <be...@atanion.com>.
Oh, sorry.
<f:verbatim> is not a good idea. Please switch to rendering of jsf
UIComponents with the rendered attribute.
<tc:image value="image/navigate-pointer.gif" width="16px" height="16px"
rendered= "#{navigationController.currentPage == 'edit/editFuelling'}"/>
or
rendered="#{facesContext.viewRoot.viewId == '/list.xml'"
Regards
Bernd
Bernd Bohmann schrieb:
> I think it is an tobago issue.
>
> Working on it.
>
> Regards
>
> Bernd
>
> Stefan Hedtfeld schrieb:
>
>> 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.
>>
>>
>
--
Dipl.-Ing. Bernd Bohmann - Atanion GmbH - Software Development
Bismarckstr. 13, 26122 Oldenburg, http://www.atanion.com
phone: +49 441 4082312, mobile: +49 173 8839471, fax: +49 441 4082333
Re: Tobago: ClassCastException rendering navigator
Posted by Bernd Bohmann <be...@atanion.com>.
I think it is an tobago issue.
Working on it.
Regards
Bernd
Stefan Hedtfeld schrieb:
> 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.
>
>
--
Dipl.-Ing. Bernd Bohmann - Atanion GmbH - Software Development
Bismarckstr. 13, 26122 Oldenburg, http://www.atanion.com
phone: +49 441 4082312, mobile: +49 173 8839471, fax: +49 441 4082333