The reason maybe JavaServer Face treating "/pages/projects/Projects.faces"
as an external context so whenever /pages/projects/Projects.faces is called,
com.sun.faces.context.ExternalContextImpl will doForward, however, since it
is included in Tiles Tag, and resposne is committed, you got the exception.

The problem may be in Sun's com.sun.faces.context.ExternalContextImpl, it
may have to doInclude.

org.apache.catalina.core .ApplicationDispatcher.doForward(
ApplicationDispatcher.java:313)
       at
org.apache.catalina.core.ApplicationDispatcher.forward(
ApplicationDispatcher.java:301)
       at
com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java
:322)

 Regards

On 11/23/05, Laurie Harper <[EMAIL PROTECTED]> wrote:
>
> Correction: the problem occurs when I change a nested tile to .faces
> instead of .jsp. Changing *only* the containing layout tile's definition
> seems to work. However, I have to include f:view in the nested JSP;
> including it in the layout doesn't seem to be sufficient, which makes me
> think using UI components in the layout may prove troublesome...
>
> Still, this gets me far enough to continue playing :-)
>
> L.
>
> Laurie Harper wrote:
> > I'm trying to get JSF working in my Struts app using the struts-faces
> > integration library. I have everything set up per the readme that comes
> > with struts-faces. I can successfully load foo.jsp with the URL
> > foo.faces, so I think things are configured correctly.
> >
> > However, as soon as I change the definition of any layout in
> > tiles-defs.xml from .jsp to .faces, I get an exception from tiles:get /
> > tiles:insert. As a sanity check, I tried with both MyFaces and the
> > reference implementation.
> >
> > Is this a known limitation or is there something I have to change to
> > make this work? I took a look at Section 9.2.8 of the JSF spec (as
> > mentioned in the struts-faces README) to see if I was running afowl of
> > anything there but it doesn't seem relevant given that I haven't
> > actually changed the JSPs to use any Faces tags yet...
> >
> > L.
> >
> >
> > [Using the JSF RI]
> >
> > ERROR [http-8080-Processor25]
> > ContainerBase.[Catalina].[localhost].[/].[action] - Servlet.service()
> > for servlet action threw exception
> > java.lang.IllegalStateException: Cannot forward after response has been
> > committed
> >     at
> > org.apache.catalina.core.ApplicationDispatcher.doForward(
> ApplicationDispatcher.java:313)
> >
> >     at
> > org.apache.catalina.core.ApplicationDispatcher.forward(
> ApplicationDispatcher.java:301)
> >
> >     at
> > com.sun.faces.context.ExternalContextImpl.dispatch(
> ExternalContextImpl.java:322)
> >
> >     at
> > com.sun.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:147)
> >
> >     at
> > org.apache.struts.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:130)
> >
> >     at
> > com.sun.faces.lifecycle.RenderResponsePhase.execute(
> RenderResponsePhase.java:87)
> >
> >     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java
> :200)
> >     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
> :117)
> >     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> >     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.jasper.runtime.PageContextImpl.include(PageContextImpl.java
> :604)
> >     at
> > org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99)
> >     at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135)
> >     at
> > org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760)
> >     at
> > org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(
> InsertTag.java:892)
> >
> >     at
> > org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
> >     at
> > org.apache.jsp.pages.core.layout_jsp._jspx_meth_tiles_get_0(
> org.apache.jsp.pages.core.layout_jsp:771)
> >
> >     at
> > org.apache.jsp.pages.core.layout_jsp._jspService(
> org.apache.jsp.pages.core.layout_jsp:341)
> >
> >     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java
> :97)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >     at
> > org.apache.jasper.servlet.JspServletWrapper.service(
> JspServletWrapper.java:322)
> >
> >     at
> > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> >     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >     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
> > com.sun.faces.context.ExternalContextImpl.dispatch(
> ExternalContextImpl.java:322)
> >
> >     at
> > com.sun.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:147)
> >
> >     at
> > org.apache.struts.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:130)
> >
> >     at
> > com.sun.faces.lifecycle.RenderResponsePhase.execute(
> RenderResponsePhase.java:87)
> >
> >     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java
> :200)
> >     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
> :117)
> >     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
> >     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
> > com.sun.faces.context.ExternalContextImpl.dispatch(
> ExternalContextImpl.java:322)
> >
> >     at
> > com.sun.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:147)
> >
> >     at
> > org.apache.struts.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:130)
> >
> >     at
> > com.sun.faces.lifecycle.RenderResponsePhase.execute(
> RenderResponsePhase.java:87)
> >
> >     at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java
> :200)
> >     at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
> :117)
> >     at
> > org.apache.struts.faces.application.FacesTilesRequestProcessor.doForward
> (FacesTilesRequestProcessor.java:147)
> >
> >     at
> > org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:239)
> >
> >     at
> > org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
> TilesRequestProcessor.java:302)
> >
> >     at
> >
> org.apache.struts.faces.application.FacesTilesRequestProcessor.processForwardConfig
> (FacesTilesRequestProcessor.java:286)
> >
> >     at
> > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java
> :229)
> >
> >     at
> > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
> >     at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java
> :414)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> >
> >     at
> > com.foo.projility.web.auth.UserAuthenticationFilter.doFilter(
> UserAuthenticationFilter.java:80)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> >
> >     at
> >
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
> (OpenSessionInViewFilter.java:172)
> >
> >     at
> > org.springframework.web.filter.OncePerRequestFilter.doFilter(
> OncePerRequestFilter.java:76)
> >
> >     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.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
> :856)
> >     at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
> (Http11Protocol.java:744)
> >
> >     at
> > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:527)
> >
> >     at
> > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> LeaderFollowerWorkerThread.java:80)
> >
> >     at
> > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:684)
> >
> >     at java.lang.Thread.run(Thread.java:613)
> >
> >
> > [Using MyFaces]
> >
> > ERROR [http-8080-Processor25]
> > ContainerBase.[Catalina].[localhost].[/].[action] - Servlet.service()
> > for servlet action threw exception
> > javax.faces.FacesException: ServletException in
> > '/pages/projects/Projects.faces': Cannot forward after response has been
> > committed
> >     at
> > org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(
> ServletExternalContextImpl.java:421)
> >
> >     at
> > org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(
> JspViewHandlerImpl.java:234)
> >
> >     at
> > org.apache.struts.faces.application.ViewHandlerImpl.renderView(
> ViewHandlerImpl.java:130)
> >
> >     at
> > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java
> :300)
> >     at
> > org.apache.struts.faces.application.FacesTilesRequestProcessor.doForward
> (FacesTilesRequestProcessor.java:147)
> >
> >     at
> > org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(
> TilesRequestProcessor.java:239)
> >
> >     at
> > org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(
> TilesRequestProcessor.java:302)
> >
> >     at
> >
> org.apache.struts.faces.application.FacesTilesRequestProcessor.processForwardConfig
> (FacesTilesRequestProcessor.java:286)
> >
> >     at
> > org.apache.struts.action.RequestProcessor.process(RequestProcessor.java
> :229)
> >
> >     at
> > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
> >     at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java
> :414)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:252)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> >
> >     at
> > com.foo.projility.web.auth.UserAuthenticationFilter.doFilter(
> UserAuthenticationFilter.java:80)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> ApplicationFilterChain.java:202)
> >
> >     at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:173)
> >
> >     at
> >
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
> (OpenSessionInViewFilter.java:172)
> >
> >     at
> > org.springframework.web.filter.OncePerRequestFilter.doFilter(
> OncePerRequestFilter.java:76)
> >
> >     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.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
> :856)
> >     at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection
> (Http11Protocol.java:744)
> >
> >     at
> > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> PoolTcpEndpoint.java:527)
> >
> >     at
> > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> LeaderFollowerWorkerThread.java:80)
> >
> >     at
> > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> ThreadPool.java:684)
> >
> >     at java.lang.Thread.run(Thread.java:613)
> > Caused by: javax.servlet.ServletException: ServletException in
> > '/pages/projects/Projects.faces': Cannot forward after response has been
> > committed
> >     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
> >     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)
> >
> >     ... 33 more
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
Yujun Liang
[EMAIL PROTECTED]

Reply via email to