You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Laurie Harper <la...@holoweb.net> on 2005/11/23 05:04:14 UTC
struts-faces and Tiles
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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: struts-faces and Tiles
Posted by Laurie Harper <la...@holoweb.net>.
I'm not sure why it would be treated as an external context, but it
seems both the RI and MyFaces are treating it as such. The only thing I
can think of if that's the case would be to prefix the path with the
application context, which would be painful if I wanted to deploy the
app to a different context!
I guess I'll have to look into the Javadoc for the ExternalContextImpl
classes in the two implementations to see if they document when they are
called.
Thanks for the pointer / suggestion.
L.
Yujun Liang wrote:
> 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 <la...@holoweb.net> 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: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
>
> --
> Yujun Liang
> yujun.liang@acm.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: struts-faces and Tiles
Posted by Yujun Liang <yu...@acm.org>.
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 <la...@holoweb.net> 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: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
--
Yujun Liang
yujun.liang@acm.org
Re: struts-faces and Tiles
Posted by Laurie Harper <la...@holoweb.net>.
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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org