You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Leonardo Uribe (JIRA)" <de...@myfaces.apache.org> on 2007/11/19 05:59:43 UTC

[jira] Commented: (MYFACES-1722) c:forEach does not work with deferred expression

    [ https://issues.apache.org/jira/browse/MYFACES-1722?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12543462 ] 

Leonardo Uribe commented on MYFACES-1722:
-----------------------------------------


Trying to check another error on jetty about this code I created another issue MYFACES-1770, thinking that this issue is not related.

There was an error on id component generation. I can see the previous error too, but with JSF RI on jetty.

javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:274)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:238)
	at org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:155)
	at javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:258)
	at org.apache.jsp.forEach_jsp._jspx_meth_c_forEach_0(org.apache.jsp.forEach_jsp:274)
	at org.apache.jsp.forEach_jsp._jspx_meth_h_form_0(org.apache.jsp.forEach_jsp:194)
	at org.apache.jsp.forEach_jsp._jspService(org.apache.jsp.forEach_jsp:111)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:80)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:464)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:358)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
	at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:415)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:458)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:126)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
	at org.mortbay.jetty.Server.handle(Server.java:285)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:502)
	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:821)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:208)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:378)
	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:368)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

If you apply the patch of  MYFACES-1770 an run the app in tomcat or jetty, I'm not have found problems. I have not tested this
issue with geronimo.

I hope this helps.



> c:forEach does not work with deferred expression
> ------------------------------------------------
>
>                 Key: MYFACES-1722
>                 URL: https://issues.apache.org/jira/browse/MYFACES-1722
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions:  1.2.0
>         Environment: Fedora7, Sun JDK 1.6.0_02, geronimo-tomcat6-jee5-2.0.1
>            Reporter: Piotr Piotrowski
>         Attachments: test-webapp.war
>
>
> The following page works on SunApplication Server 9, but does not work on Geronimo:
> <%@page contentType="text/html"%>
> <%@page pageEncoding="UTF-8"%>
> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>    "http://www.w3.org/TR/html4/loose.dtd">
> <html>
>     <head>
>         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>         <title>JSP Page</title>
>     </head>
>     <body>
>         <f:view>
>             <p>
>                 <c:forEach var="i" items="#{CombinedEL.table}">
>                     <h:outputText value="#{i}"/>,
>                 </c:forEach>
>             </p>
>         </f:view>
>     </body>
> </html>
> The managed bean looks as follows:
> package pp.web;
> public class CombinedEL {
>     public Object[] getTable() {
>         return new Object[] {"a", "b", "c"};
>     }
> }
> The error looks like this:
> HTTP Status 500 - 
> type Exception report
> message 
> description The server encountered an internal error () that prevented it from fulfilling this request.
> exception 
> javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
> root cause 
> javax.faces.FacesException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
>         org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:340)
>         org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:254)
>         org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>         org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> root cause 
> javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
>         org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
>         org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
>         org.apache.jsp.combinedEL_jsp._jspService(combinedEL_jsp.java:90)
>         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>         javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
>         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
>         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
>         javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:334)
>         org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:254)
>         org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>         org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> root cause 
> javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in &lt;forEach&gt;
>         org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:274)
>         org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:238)
>         org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:155)
>         javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:256)
>         org.apache.jsp.combinedEL_jsp._jspx_meth_c_005fforEach_005f0(combinedEL_jsp.java:157)
>         org.apache.jsp.combinedEL_jsp._jspx_meth_f_005fview_005f0(combinedEL_jsp.java:119)
>         org.apache.jsp.combinedEL_jsp._jspService(combinedEL_jsp.java:80)
>         org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>         javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
>         org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
>         org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
>         javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:334)
>         org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:254)
>         org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>         org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
> note The full stack trace of the root cause is available in the Apache Tomcat/6.0-snapshot logs.
> Apache Tomcat/6.0-snapshot

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.