I don't know JSF, but I just want to know what is </s:html>? On 12/5/05, Laurie Harper <[EMAIL PROTECTED]> wrote: > > Anyone have any ideas on this one? My next step in figuring it out will > be to step through the code for tiles:get / tiles:insert in a debugger > and see if I can spot where the JSP output stream is getting closed, but > as far as I can see I'm not doing anything different than the example2 > app that ships with struts-faces so I'm confused as to why I'm having > problems ;-) > > L. > > Laurie Harper wrote: > > Having successfully converted a couple of tile JSPs to JSF, I just tried > > converting a layout. I'm getting a really weird behaviour which I can't > > explain... It *looks* like Tiles is closing the response stream in spite > > of flush="false", but if that were the case I'd expect the following > > exception to occur sooner in the generated servlet. > > > > Here's the relevant snippet of the layout JSP: > > > > ... > > <f:subview id="foo"> > > <!--<t:get name="content" flush="false"/>--> > > <t:insert name="content" flush="false"/> > > </f:subview> > > > > <jsp:scriptlet>System.out.println("layout 4");</jsp:scriptlet> > > > > <br /><br /><br /><br /><br /><br /> > > > > </body> > > </s:html> > > <jsp:scriptlet>System.out.println("layout 5");</jsp:scriptlet> > > </f:view> > > </jsp:root> > > > > The exception is thrown from s:view's doEndTag but, looking at the > > servlet, I see this: > > > > ... > > if (_jspx_meth_f_subview_0(_jspx_th_s_html_0, > > _jspx_page_context)) > > return; > > System.out.println("layout 4"); > > out.write("<br/>"); > > out.write("<br/>"); > > out.write("<br/>"); > > out.write("<br/>"); > > out.write("<br/>"); > > out.write("<br/>"); > > out.write("</body>"); > > } > > if (_jspx_th_s_html_0.doEndTag() == > > javax.servlet.jsp.tagext.Tag.SKIP_PAGE) > > return; > > ... > > > > I do see 'layout 4' traced to stdout, so the series of calls to > > out.write() must be getting executed and doesn't result in an exception, > > as I would expect if the response had been closed at that point. But > > there's nothing between them and the call to s:view's doEndTag so, > > unless it's the s:view tag that's closing the stream, why do I end up > > with an exception? > > > > And if it is Tiles that's closing the response, how do I make it *not* > > do that? > > > > Oh, just for completeness, here's the relevant snips of tiles-defs.xml: > > > > <definition name=".core.layout" path="/pages/core/layout.faces"> > > <put name="title" value="PAGE TITLE"/> > > <put name="stylesheet" value="PAGE STYLE"/> > > <put name="section" value="SITE SECTION"/> > > <put name="content" value="PAGE CONTENT"/> > > </definition> > > > > <definition name=".projects.layout" extends=".core.layout"> > > <put name="section" value="projects"/> > > <put name="stylesheet" value="/pages/projects/project-style.css > "/> > > </definition> > > > > <definition name=".projects.list" extends=".projects.layout"> > > <put name="content" value="/pages/projects/Projects.jsp"/> > > </definition> > > > > And here's the exception: > > > > layout 4 > > ERROR [http-8080-Processor24] > > ContainerBase.[Catalina].[localhost].[/].[jsp] - Servlet.service() for > > servlet jsp threw exception > > java.io.IOException: Stream closed > > at > > org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java > :203) > > at > > org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:311) > > at > > org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:336) > > at > > org.apache.myfaces.renderkit.html.HtmlResponseWriterImpl.endElement( > HtmlResponseWriterImpl.java:243) > > > > at > > org.apache.struts.faces.renderer.HtmlRenderer.encodeEnd( > HtmlRenderer.java:110) > > > > at > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java > :331) > > at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java > :349) > > at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java > :253) > > at > > org.apache.jsp.pages.core.layout_jsp._jspService( > org.apache.jsp.pages.core.layout_jsp:337) > > > > 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 > > org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch( > ServletExternalContextImpl.java:415) > > > > 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 javax.faces.webapp.FacesServlet.service(FacesServlet.java:95) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( > ApplicationFilterChain.java:252) > > > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter( > ApplicationFilterChain.java:173) > > > > at > > org.apache.catalina.core.ApplicationDispatcher.invoke( > ApplicationDispatcher.java:672) > > > > at > > org.apache.catalina.core.ApplicationDispatcher.processRequest( > ApplicationDispatcher.java:463) > > > > at > > org.apache.catalina.core.ApplicationDispatcher.doForward( > ApplicationDispatcher.java:398) > > > > at > > org.apache.catalina.core.ApplicationDispatcher.forward( > ApplicationDispatcher.java:301) > > > > at > > org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch( > ServletExternalContextImpl.java:415) > > > > at > > org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView( > JspViewHandlerImpl.java:234) > > > > at > > org.apache.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) > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
-- Yujun Liang [EMAIL PROTECTED]