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]

Reply via email to