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 <[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]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to