Layout is a component, not a page. It goes into the components package. So Layout.java needs to be in foo.bar.components, and so does Layout.html.
Looks like Tapestry found your component but not your template. Therefore it was treated as a component without a template (which is valid). Thus the content of your page's template was rendered outside the bounds of an element, causing the exception. Also, there's an existing bug about that exception (it's accurate but extremely unhelpful). On 4/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
I must be daft. I can't make sense of this example. I'm using 5.0.3. We have a layout like so: (filename: Layout.html) <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> Hello </head> <body> <t:body/> </body> </html> This layout goes in the "pages" directory. Then we have a page like so: (filename: Content.html) <t:layout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> My Page Specific Content </t:layout> This file also goes into the "pages" directory. When I hit /Content on my app server I get this: An unexpected application exception has occurred. * java.lang.IllegalStateException This markup writer does not have a current element. The current element is established with the first call to element() and is maintained across subsequent calls. Stack trace o org.apache.tapestry.internal.services.MarkupWriterImpl.ensureCurrentElement(MarkupWriterImpl.java:125) o org.apache.tapestry.internal.services.MarkupWriterImpl.write(MarkupWriterImpl.java:76) o org.apache.tapestry.internal.structure.TextPageElement.render(TextPageElement.java:34) o org.apache.tapestry.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:57) o org.apache.tapestry.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:40) o org.apache.tapestry.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:45) o org.apache.tapestry.internal.services.PageRenderDispatcher$1.renderPage(PageRenderDispatcher.java:82) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle(PageLinkHandlerImpl.java:89) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle(PageLinkHandlerImpl.java:49) o org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:91) o org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:1201) o org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) o org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:736) o org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:63) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:91) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:82) o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) o org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:104) o org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1179) o org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:115) o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) o org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) o org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) o org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) o org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) o org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) o org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216) o org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) o org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) o org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) o java.lang.Thread.run(Thread.java:613) Request Context Path none (deployed as root) Request Path /content Locale en_US Headers accept text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 accept-charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 accept-encoding gzip,deflate accept-language en-us,en;q=0.5 connection keep-alive cookie style=null; control-pluginControl=true; control-miscControl=true host localhost:8080 keep-alive 300 user-agent Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
-- Howard M. Lewis Ship TWD Consulting, Inc. Independent J2EE / Open-Source Java Consultant Creator and PMC Chair, Apache Tapestry Creator, Apache HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]