You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by xfile80303 <le...@grokers.net> on 2009/09/15 23:56:40 UTC

[T5.1] PageDocumentGenerator Broken?

Hello all,

My ultimate goal is to have a portion of a page render into a string so I
can email this rendered HTML.  In trying to do this, I decided the best
(only?) approach is to use the PageDocumentGenerator in the onSuccess method
of the page form (the form is used to capture the email address, etc.). 
Something like this:

Object onSuccessFromMyForm()
{
  Document doc = pageDocumentGenerator.render("MyPage");
  Element element = doc.getElementById("itemblock");
  StringWriter buffer = new StringWriter();
  PrintWriter writer = new PrintWriter(buffer, true /*autoflush*/);
  element.toMarkup(writer);
  String items = buffer.toString();
  //Do something with the rendered info...
  return null;
}


My page template is about as simple as can be:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
  xmlns:p="tapestry:parameter">
<form t:id="myform">
  <input type="submit" value="Do It" t:type="submit"/>
</form>
<div id="itemblock">
Hello World!
</div>
</html>


But when I submit the form, I get an application exception "Form components
may not be placed inside other Form components." (more below)

Has anyone been able to get this to work, or have a better way to approach
this?

Many thanks,

Levi


An unexpected application exception has occurred.

org.apache.tapestry5.runtime.ComponentEventException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
context
eventType
action
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 4
1	<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
2		xmlns:p="tapestry:parameter">
3	
4	<form t:id="myform">
5		<input type="submit" value="Do It" t:type="submit"/>
6	</form>
7	
8	<div id="itemblock">
9	Hello World!
org.apache.tapestry5.runtime.ComponentEventException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
context
eventType
success
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 4
org.apache.tapestry5.internal.services.RenderQueueException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
activeComponents
MyPage (class com.java.dse.cwp.eos.pages.MyPage)
MyPage:myform (class org.apache.tapestry5.corelib.components.Form)
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 4
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 4
org.apache.tapestry5.ioc.internal.util.TapestryException
Form components may not be placed inside other Form components.
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 4
Hide uninteresting stack frames Stack trace 
org.apache.tapestry5.corelib.components.Form.setupRender(Form.java:236)
org.apache.tapestry5.corelib.components.Form.setupRender(Form.java)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:941)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:129)

-- 
View this message in context: http://n2.nabble.com/T5-1-PageDocumentGenerator-Broken-tp3652192p3652192.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5.1] PageDocumentGenerator Broken?

Posted by xfile80303 <le...@grokers.net>.
Thanks Josh.

Unfortunately I can't do that since there is session state involved in the
rendering.

I've tried a slightly different approach (abandoning PageDocumentGenerator
as broken) thinking perhaps since this works for AJAX requests maybe I could
render a block in this way, and I've met with some limited success.

I'm able to get simple text rendered, but the mere addition of a simple loop
component blows it up. I'm quite frustrated with this at the moment. 
Perhaps some other eyes?

Here's what I've got... if you replace the content of the "emailblock"
component with just "Hello World" you'll get the Hello World text wrapped in
an ajax-partial tag.  Which is nearly usable:
<ajax-partial> Hello World! </ajax-partial> However, with a loop it gives a
NPE down in the internals (see below).

Template:

<html
  xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
  xmlns:p="tapestry:parameter">
<head>
  <title>My Page</title>
</head>
<body>
  <form t:id="myform">
    <input value="Do It" t:type="submit"/>
  </form>

  <t:block id="emailblock">
  <ol>
    <t:loop source="items" value="item" encoder="encoder">
      <li>${item}</li>
    </t:loop>
  </ol>
  </t:block>
</body>
</html>


Java:

package com.java.dse.cwp.eos.pages;

import com.java.dse.cwp.eos.base.AbstractPage;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.ContentType;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.ValueEncoder;
import org.apache.tapestry5.annotations.Component;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.corelib.components.Form;
import org.apache.tapestry5.dom.Document;
import org.apache.tapestry5.internal.services.PageRenderQueue;
import org.apache.tapestry5.internal.services.RequestPageCache;
import org.apache.tapestry5.internal.structure.Page;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.runtime.RenderCommand;
import org.apache.tapestry5.services.MarkupWriterFactory;

public class MyPage extends AbstractPage
{
  public List<String> getItems()
  {
    if (items == null)
    {
      items = new ArrayList<String>();
      for (int i = 1; i <= 10; ++i)
      {
        items.add("Hello World " + i);
      }
    }

    return items;
  }

  public ValueEncoder<String> getEncoder()
  {
    ValueEncoder<String> encoder = new ValueEncoder<String>()
    {
      @Override
      public String toClient(String arg0)
      {
        return arg0;
      }

      @Override
      public String toValue(String arg0)
      {
        return arg0;
      }
    };

    return encoder;
  }

  Object onSuccessFromMyForm()
  {
    Page page = pageCache.get("MyPage");
    pageRenderQueue.setRenderingPage(page);
   
pageRenderQueue.initializeForPartialPageRender((RenderCommand)emailBlock);

    MarkupWriter markupWriter = markupWriterFactory.newPartialMarkupWriter(
        new ContentType("text/html"));
    JSONObject reply = new JSONObject();
    pageRenderQueue.renderPartial(markupWriter, reply);
    Document document = markupWriter.getDocument();

    StringWriter buffer = new StringWriter();
    PrintWriter writer = new PrintWriter(buffer, true /*autoflush*/);
    document.toMarkup(writer);
    String markup = buffer.toString();

    return null;
  }

  private List<String> items;

  @Component(id = "myform")
  private Form _myForm;
  
  @Inject private PageRenderQueue pageRenderQueue;
  @Inject private MarkupWriterFactory markupWriterFactory;
  @Inject private RequestPageCache pageCache;

  @Inject @Property private Block emailBlock;
  
  @Property private String item;
}


Exception:

org.apache.tapestry5.corelib.internal.FormSupportImpl.store(FormSupportImpl.java:96)
org.apache.tapestry5.corelib.components.Loop.setup(Loop.java:323)
org.apache.tapestry5.corelib.components.Loop.setupRender(Loop.java)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
org.apache.tapestry5.internal.services.PageRenderQueueImpl$1.renderMarkup(PageRenderQueueImpl.java:137)
org.apache.tapestry5.internal.services.PageRenderQueueImpl.renderPartial(PageRenderQueueImpl.java:159)
com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:69)




Josh Canfield wrote:
> 
> I went down a similar path on thedailytube.com for sending email
> forwards. The challenge you are seeing here is with the Environment.
> The form is checking in setupRender for an existing FormSupport object
> and complaining because it already exists. The environment that you
> are trying to render with is the same one you are using to process the
> form. There are a couple of objects that you will run into problems
> with (can't remember off the top of my head, and I did it with a much
> older version). You can try popping/pushing the objects out of the
> environment while you are running your rendering, but this solution is
> messy and brittle.
> 
> I eventually gave up and just created a separate page with the content
> and do an HTTP request to grab the rendered content...
> 
> Good Luck!
> Josh
> 
> 
> On Wed, Sep 16, 2009 at 8:35 AM, xfile80303 <le...@grokers.net> wrote:
>>
>> Hi Thiago,
>>
>> Yes, I'm sorry, you are correct.  In my attempt to get a small "working"
>> example, I stripped out the head tag.
>>
>> Here's my corrected template:
>>
>> <html
>>        xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>>        xmlns:p="tapestry:parameter">
>> <head>
>>        <title>My Page</title>
>> </head>
>> <body>
>>        <form t:id="myform">
>>                <input value="Do It" t:type="submit"/>
>>        </form>
>>
>>        <div id="itemblock">
>>        Hello World!
>>        </div>
>> </body>
>> </html>
>>
>> But unfortunately I still get the same error.
>>
>> org.apache.tapestry5.runtime.ComponentEventException
>> Render queue error in SetupRender[MyPage:myform]: Form components may not
>> be
>> placed inside other Form components.
>> context
>> eventType
>> action
>> location
>> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
>> 3               xmlns:p="tapestry:parameter">
>> 4       <head>
>> 5               <title>My Page</title>
>> 6       </head>
>> 7       <body>
>> 8               <form t:id="myform">
>> 9                       <input value="Do It" t:type="submit"/>
>> 10              </form>
>> 11
>> 12              <div id="itemblock">
>> 13              Hello World!
>> org.apache.tapestry5.runtime.ComponentEventException
>> Render queue error in SetupRender[MyPage:myform]: Form components may not
>> be
>> placed inside other Form components.
>> context
>> eventType
>> success
>> location
>> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
>> org.apache.tapestry5.internal.services.RenderQueueException
>> Render queue error in SetupRender[MyPage:myform]: Form components may not
>> be
>> placed inside other Form components.
>> activeComponents
>> MyPage (class com.java.dse.cwp.eos.pages.MyPage)
>> MyPage:myform (class org.apache.tapestry5.corelib.components.Form)
>> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
>> location
>> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
>> org.apache.tapestry5.ioc.internal.util.TapestryException
>> Form components may not be placed inside other Form components.
>> location
>> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
>> Hide uninteresting stack frames Stack trace
>> org.apache.tapestry5.corelib.components.Form.setupRender(Form.java:236)
>> org.apache.tapestry5.corelib.components.Form.setupRender(Form.java)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:941)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
>> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
>> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
>> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
>> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
>> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
>> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
>> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
>> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
>> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
>> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>> org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
>> com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:17)
>>
>>
>> I started stripping this down because originally I was getting a NPE from
>> the internals, when I didn't expect to see one:
>>
>>
>> org.apache.tapestry5.corelib.internal.FormSupportImpl.store(FormSupportImpl.java:96)
>> org.apache.tapestry5.corelib.components.Loop.setup(Loop.java:323)
>> org.apache.tapestry5.corelib.components.Loop.setupRender(Loop.java)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
>> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
>> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
>> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
>> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
>> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
>> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
>> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
>> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
>> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
>> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
>> org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
>> com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:129)
>>
>> The part I don't understand is that the page initially renders without
>> complaint... it is only when it is trying to render the page for the
>> PageDocumentGenerator that it has these mysterious issues, which makes me
>> think something's not working correctly with the PageDocumentGenerator
>> service.
>>
>> Cheers,
>>
>> Levi
>>
>>
>> Thiago H. de Paula Figueiredo wrote:
>>>
>>> Em Tue, 15 Sep 2009 18:56:40 -0300, xfile80303 <le...@grokers.net>
>>> escreveu:
>>>
>>>> Hello all,
>>>
>>> Hi!
>>>
>>>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>>>>   xmlns:p="tapestry:parameter">
>>>> <form t:id="myform">
>>>>   <input type="submit" value="Do It" t:type="submit"/>
>>>> </form>
>>>
>>> It may be not related to your problem, but shouldn't your template have
>>> a
>>> head tag?
>>>
>>> --
>>> Thiago H. de Paula Figueiredo
>>> Independent Java consultant, developer, and instructor
>>> http://www.arsmachina.com.br/thiago
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://n2.nabble.com/T5-1-PageDocumentGenerator-Broken-tp3652192p3657137.html
>> Sent from the Tapestry Users mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> 
> 
> 
> -- 
> --
> TheDailyTube.com. Sign up and get the best new videos on the internet
> delivered fresh to your inbox.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/T5-1-PageDocumentGenerator-Broken-tp3652192p3659784.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5.1] PageDocumentGenerator Broken?

Posted by Josh Canfield <jo...@thedailytube.com>.
I went down a similar path on thedailytube.com for sending email
forwards. The challenge you are seeing here is with the Environment.
The form is checking in setupRender for an existing FormSupport object
and complaining because it already exists. The environment that you
are trying to render with is the same one you are using to process the
form. There are a couple of objects that you will run into problems
with (can't remember off the top of my head, and I did it with a much
older version). You can try popping/pushing the objects out of the
environment while you are running your rendering, but this solution is
messy and brittle.

I eventually gave up and just created a separate page with the content
and do an HTTP request to grab the rendered content...

Good Luck!
Josh


On Wed, Sep 16, 2009 at 8:35 AM, xfile80303 <le...@grokers.net> wrote:
>
> Hi Thiago,
>
> Yes, I'm sorry, you are correct.  In my attempt to get a small "working"
> example, I stripped out the head tag.
>
> Here's my corrected template:
>
> <html
>        xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>        xmlns:p="tapestry:parameter">
> <head>
>        <title>My Page</title>
> </head>
> <body>
>        <form t:id="myform">
>                <input value="Do It" t:type="submit"/>
>        </form>
>
>        <div id="itemblock">
>        Hello World!
>        </div>
> </body>
> </html>
>
> But unfortunately I still get the same error.
>
> org.apache.tapestry5.runtime.ComponentEventException
> Render queue error in SetupRender[MyPage:myform]: Form components may not be
> placed inside other Form components.
> context
> eventType
> action
> location
> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
> 3               xmlns:p="tapestry:parameter">
> 4       <head>
> 5               <title>My Page</title>
> 6       </head>
> 7       <body>
> 8               <form t:id="myform">
> 9                       <input value="Do It" t:type="submit"/>
> 10              </form>
> 11
> 12              <div id="itemblock">
> 13              Hello World!
> org.apache.tapestry5.runtime.ComponentEventException
> Render queue error in SetupRender[MyPage:myform]: Form components may not be
> placed inside other Form components.
> context
> eventType
> success
> location
> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
> org.apache.tapestry5.internal.services.RenderQueueException
> Render queue error in SetupRender[MyPage:myform]: Form components may not be
> placed inside other Form components.
> activeComponents
> MyPage (class com.java.dse.cwp.eos.pages.MyPage)
> MyPage:myform (class org.apache.tapestry5.corelib.components.Form)
> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
> location
> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
> org.apache.tapestry5.ioc.internal.util.TapestryException
> Form components may not be placed inside other Form components.
> location
> classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
> Hide uninteresting stack frames Stack trace
> org.apache.tapestry5.corelib.components.Form.setupRender(Form.java:236)
> org.apache.tapestry5.corelib.components.Form.setupRender(Form.java)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:941)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
> org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
> com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:17)
>
>
> I started stripping this down because originally I was getting a NPE from
> the internals, when I didn't expect to see one:
>
>
> org.apache.tapestry5.corelib.internal.FormSupportImpl.store(FormSupportImpl.java:96)
> org.apache.tapestry5.corelib.components.Loop.setup(Loop.java:323)
> org.apache.tapestry5.corelib.components.Loop.setupRender(Loop.java)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
> org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
> org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
> com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:129)
>
> The part I don't understand is that the page initially renders without
> complaint... it is only when it is trying to render the page for the
> PageDocumentGenerator that it has these mysterious issues, which makes me
> think something's not working correctly with the PageDocumentGenerator
> service.
>
> Cheers,
>
> Levi
>
>
> Thiago H. de Paula Figueiredo wrote:
>>
>> Em Tue, 15 Sep 2009 18:56:40 -0300, xfile80303 <le...@grokers.net>
>> escreveu:
>>
>>> Hello all,
>>
>> Hi!
>>
>>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>>>   xmlns:p="tapestry:parameter">
>>> <form t:id="myform">
>>>   <input type="submit" value="Do It" t:type="submit"/>
>>> </form>
>>
>> It may be not related to your problem, but shouldn't your template have a
>> head tag?
>>
>> --
>> Thiago H. de Paula Figueiredo
>> Independent Java consultant, developer, and instructor
>> http://www.arsmachina.com.br/thiago
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>
> --
> View this message in context: http://n2.nabble.com/T5-1-PageDocumentGenerator-Broken-tp3652192p3657137.html
> Sent from the Tapestry Users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
--
TheDailyTube.com. Sign up and get the best new videos on the internet
delivered fresh to your inbox.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5.1] PageDocumentGenerator Broken?

Posted by xfile80303 <le...@grokers.net>.
Hi Thiago,

Yes, I'm sorry, you are correct.  In my attempt to get a small "working"
example, I stripped out the head tag.

Here's my corrected template:

<html
	xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
	xmlns:p="tapestry:parameter">
<head>
	<title>My Page</title>
</head>
<body>
	<form t:id="myform">
		<input value="Do It" t:type="submit"/>
	</form>

	<div id="itemblock">
	Hello World!
	</div>
</body>
</html>

But unfortunately I still get the same error.

org.apache.tapestry5.runtime.ComponentEventException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
context
eventType
action
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
3		xmlns:p="tapestry:parameter">
4	<head>
5		<title>My Page</title>
6	</head>
7	<body>
8		<form t:id="myform">
9			<input value="Do It" t:type="submit"/>
10		</form>
11	
12		<div id="itemblock">
13		Hello World!
org.apache.tapestry5.runtime.ComponentEventException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
context
eventType
success
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
org.apache.tapestry5.internal.services.RenderQueueException
Render queue error in SetupRender[MyPage:myform]: Form components may not be
placed inside other Form components.
activeComponents
MyPage (class com.java.dse.cwp.eos.pages.MyPage)
MyPage:myform (class org.apache.tapestry5.corelib.components.Form)
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
org.apache.tapestry5.ioc.internal.util.TapestryException
Form components may not be placed inside other Form components.
location
classpath:com/java/dse/cwp/eos/pages/MyPage.tml, line 8
Hide uninteresting stack frames Stack trace 
org.apache.tapestry5.corelib.components.Form.setupRender(Form.java:236)
org.apache.tapestry5.corelib.components.Form.setupRender(Form.java)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:941)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:17)


I started stripping this down because originally I was getting a NPE from
the internals, when I didn't expect to see one:


org.apache.tapestry5.corelib.internal.FormSupportImpl.store(FormSupportImpl.java:96)
org.apache.tapestry5.corelib.components.Loop.setup(Loop.java:323)
org.apache.tapestry5.corelib.components.Loop.setupRender(Loop.java)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
org.apache.tapestry5.internal.services.PageDocumentGeneratorImpl.render(PageDocumentGeneratorImpl.java:60)
com.java.dse.cwp.eos.pages.MyPage.onSuccessFromMyForm(MyPage.java:129)

The part I don't understand is that the page initially renders without
complaint... it is only when it is trying to render the page for the
PageDocumentGenerator that it has these mysterious issues, which makes me
think something's not working correctly with the PageDocumentGenerator
service.

Cheers,

Levi


Thiago H. de Paula Figueiredo wrote:
> 
> Em Tue, 15 Sep 2009 18:56:40 -0300, xfile80303 <le...@grokers.net>
> escreveu:
> 
>> Hello all,
> 
> Hi!
> 
>> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>>   xmlns:p="tapestry:parameter">
>> <form t:id="myform">
>>   <input type="submit" value="Do It" t:type="submit"/>
>> </form>
> 
> It may be not related to your problem, but shouldn't your template have a  
> head tag?
> 
> -- 
> Thiago H. de Paula Figueiredo
> Independent Java consultant, developer, and instructor
> http://www.arsmachina.com.br/thiago
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/T5-1-PageDocumentGenerator-Broken-tp3652192p3657137.html
Sent from the Tapestry Users mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: [T5.1] PageDocumentGenerator Broken?

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
Em Tue, 15 Sep 2009 18:56:40 -0300, xfile80303 <le...@grokers.net> escreveu:

> Hello all,

Hi!

> <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd"
>   xmlns:p="tapestry:parameter">
> <form t:id="myform">
>   <input type="submit" value="Do It" t:type="submit"/>
> </form>

It may be not related to your problem, but shouldn't your template have a  
head tag?

-- 
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org