You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "DarkIT Mail.RU" <da...@mail.ru> on 2003/07/29 11:59:01 UTC
another renderComponent question
hi alls,
I have a component :
JWC file:
<component-specification class="MyComponent"
allow-body="yes" allow-informal-parameters="no">
<description>My component</description>
<parameter name="key" property-name="key" type="java.lang.String" direction="in" required="no"/>
</component-specification>
HTML file:
<span jwcid="$content$">
<span jwcid="@RenderBody">Render body</span>
</span>
And it's used in page like this :
<span jwcid="myComponentId">
<strong>Test Home Page</strong>
<span jwcid="insertDate"/>
</span>
In my component I overloaded renderComponent function and i was very
wondered that this method is invoked twice. Is it a bag or is it a
feature. If it's feature , i can't undestand it, because we do the
same work twice.
--
Best regards,
DarkIT mailto:darkit@mail.ru
Linking from JavaScript Menu to a Tapestry Page
Posted by Shantanu Deo <sh...@elixir-it.com>.
Hi,
Anyone knows how I could link to a specific page defined in the
Application file, from a JavaScript Menu. This is a registration page, and
we would like to offer a casual visitor to the site to register with us, and
this process should be part of the application.
Thanks in advance,
Shantanu
----- Original Message -----
From: "Howard M. Lewis Ship" <hl...@comcast.net>
To: "'Tapestry users'" <ta...@jakarta.apache.org>; "'DarkIT
Mail.RU'" <da...@mail.ru>
Sent: Tuesday, July 29, 2003 11:43 AM
Subject: RE: Re[4]: another renderComponent question
> Yes, that's what ActionLink is for. This is normal. The action service
rewinds the entire page,
> much like a form rewinds a portion of the page. This is not very
efficient, which is why folks
> generally use the DirectLink. It's advantage is that, under proper
circumstances, it can restore
> state that can't be transmitted to the client (large or non-serializable
objects only available to
> the server).
>
> --
> Howard M. Lewis Ship
> Creator, Tapestry: Java Web Components
> http://jakarta.apache.org/tapestry
>
>
>
> > -----Original Message-----
> > From: DarkIT Mail.RU [mailto:darkit@mail.ru]
> > Sent: Tuesday, July 29, 2003 10:37 AM
> > To: Tapestry users
> > Subject: Re[4]: another renderComponent question
> >
> >
> > Hello Howard,
> >
> > I've just tested such page on Tomcat 4.0.1
> >
> > <form jwcid="@Form" listener="ognl:listeners.formSubmit">
> > <span jwcid="cache">
> > <strong>ClearView Test Home Page</strong>
> > <span jwcid="insertDate"/>
> > </span>
> > <br/>
> > <span jwcid="@ActionLink"
> > listener="ognl:listeners.flushAction">Flush</span>
> > </form>
> >
> > protected void renderComponent(IMarkupWriter writer,
> > IRequestCycle cycle) {
> > System.out.println("begin: "+i+" -------------------");
> > new Throwable().printStackTrace();
> > System.out.println("end: "+i+" -------------------");
> > i++;
> > super.renderComponent(writer, cycle);
> > }
> > If i just refresh(push Ctrl+F5 in teh browser) the page then
> > my component is rendered once, but if i push ActionLink,
> > than tomcat does it like resin :
> >
> >
> > begin: 1 -------------------
> > java.lang.Throwable
> > at
> > com.bonasource.tapestry.component.cache.CacheTag.renderCompone
> > nt(CacheTag.java:44)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > at
> > org.apache.tapestry.form.Form.renderComponent(Form.java:394)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> > at
> > org.apache.tapestry.engine.RequestCycle.rewindPage(RequestCycl
> > e.java:548)
> > at
> > org.apache.tapestry.engine.ActionService.service(ActionService
> > .java:199)
> > at
> > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> > ne.java:913)
> > at
> > org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> > rvlet.java:238)
> > at
> > org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> > t.java:199)
> > at
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > at
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> > er(ApplicationFilterChain.java:247)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> > cationFilterChain.java:193)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> > rapperValve.java:243)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardC
> > ontextValve.java:201)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> > esValve.java:246)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardContext.invoke(StandardContex
> > t.java:2344)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> > Valve.java:164)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> > spatcherValve.java:170)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> > Valve.java:170)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv
> > e.java:462)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> > gineValve.java:163)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.connector.http.HttpProcessor.process(HttpP
> > rocessor.java:1011)
> > at
> > org.apache.catalina.connector.http.HttpProcessor.run(HttpProce
> > ssor.java:1106)
> > at java.lang.Thread.run(Thread.java:534)
> > end: 1 -------------------
> >
> >
> > begin: 2 -------------------
> > java.lang.Throwable
> > at
> > com.bonasource.tapestry.component.cache.CacheTag.renderCompone
> > nt(CacheTag.java:44)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> > nent.java:673)
> > at
> > org.apache.tapestry.form.Form.renderComponent(Form.java:394)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> > t.java:159)
> > at
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent
> > .java:896)
> > at
> > org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> > at
> > org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> > e.java:411)
> > at
> > org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> > actEngine.java:775)
> > at
> > org.apache.tapestry.engine.ActionService.service(ActionService
> > .java:206)
> > at
> > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> > ne.java:913)
> > at
> > org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> > rvlet.java:238)
> > at
> > org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> > t.java:199)
> > at
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > at
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> > er(ApplicationFilterChain.java:247)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> > cationFilterChain.java:193)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> > rapperValve.java:243)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardC
> > ontextValve.java:201)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> > esValve.java:246)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardContext.invoke(StandardContex
> > t.java:2344)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> > Valve.java:164)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> > spatcherValve.java:170)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> > Valve.java:170)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv
> > e.java:462)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> > gineValve.java:163)
> > at
> > org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> > ipeline.java:566)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> > ine.java:472)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> >
> > at
> > org.apache.catalina.connector.http.HttpProcessor.process(HttpP
> > rocessor.java:1011)
> > at
> > org.apache.catalina.connector.http.HttpProcessor.run(HttpProce
> > ssor.java:1106)
> > at java.lang.Thread.run(Thread.java:534)
> > end: 2 -------------------
> >
> > Tuesday, July 29, 2003, 5:45:48 PM, you wrote:
> >
> > HMLS> I'll have to do some testing ... looks like the mark of
> > Resin (the
> > HMLS> blinding fast but not always accurate server :-). Seriously, I
> > HMLS> get a stream of problems related to Resin ... Resin's
> > XML parser
> > HMLS> causes problems, now something looks odd here with
> > Resin possibly
> > HMLS> invoking the servlet twice in a single request?
> >
> >
> > --
> > Best regards,
> > DarkIT mailto:darkit@mail.ru
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
RE: Re[4]: another renderComponent question
Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
Yes, that's what ActionLink is for. This is normal. The action service rewinds the entire page,
much like a form rewinds a portion of the page. This is not very efficient, which is why folks
generally use the DirectLink. It's advantage is that, under proper circumstances, it can restore
state that can't be transmitted to the client (large or non-serializable objects only available to
the server).
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
> -----Original Message-----
> From: DarkIT Mail.RU [mailto:darkit@mail.ru]
> Sent: Tuesday, July 29, 2003 10:37 AM
> To: Tapestry users
> Subject: Re[4]: another renderComponent question
>
>
> Hello Howard,
>
> I've just tested such page on Tomcat 4.0.1
>
> <form jwcid="@Form" listener="ognl:listeners.formSubmit">
> <span jwcid="cache">
> <strong>ClearView Test Home Page</strong>
> <span jwcid="insertDate"/>
> </span>
> <br/>
> <span jwcid="@ActionLink"
> listener="ognl:listeners.flushAction">Flush</span>
> </form>
>
> protected void renderComponent(IMarkupWriter writer,
> IRequestCycle cycle) {
> System.out.println("begin: "+i+" -------------------");
> new Throwable().printStackTrace();
> System.out.println("end: "+i+" -------------------");
> i++;
> super.renderComponent(writer, cycle);
> }
> If i just refresh(push Ctrl+F5 in teh browser) the page then
> my component is rendered once, but if i push ActionLink,
> than tomcat does it like resin :
>
>
> begin: 1 -------------------
> java.lang.Throwable
> at
> com.bonasource.tapestry.component.cache.CacheTag.renderCompone
> nt(CacheTag.java:44)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> at
> org.apache.tapestry.form.Form.renderComponent(Form.java:394)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> at
> org.apache.tapestry.engine.RequestCycle.rewindPage(RequestCycl
> e.java:548)
> at
> org.apache.tapestry.engine.ActionService.service(ActionService
> .java:199)
> at
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> ne.java:913)
> at
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:238)
> at
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:199)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:247)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:243)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:201)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> esValve.java:246)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardContext.invoke(StandardContex
> t.java:2344)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:164)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> spatcherValve.java:170)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:170)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv
> e.java:462)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:163)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.connector.http.HttpProcessor.process(HttpP
> rocessor.java:1011)
> at
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProce
> ssor.java:1106)
> at java.lang.Thread.run(Thread.java:534)
> end: 1 -------------------
>
>
> begin: 2 -------------------
> java.lang.Throwable
> at
> com.bonasource.tapestry.component.cache.CacheTag.renderCompone
> nt(CacheTag.java:44)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractComponent.renderBody(AbstractCompo
> nent.java:673)
> at
> org.apache.tapestry.form.Form.renderComponent(Form.java:394)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> at
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> e.java:411)
> at
> org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> actEngine.java:775)
> at
> org.apache.tapestry.engine.ActionService.service(ActionService
> .java:206)
> at
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> ne.java:913)
> at
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:238)
> at
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:199)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:247)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:243)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:201)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.valves.CertificatesValve.invoke(Certificat
> esValve.java:246)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardContext.invoke(StandardContex
> t.java:2344)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:164)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDi
> spatcherValve.java:170)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:170)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValv
> e.java:462)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:163)
> at
> org.apache.catalina.core.StandardPipeline.invokeNext(StandardP
> ipeline.java:566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipel
> ine.java:472)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
>
> at
> org.apache.catalina.connector.http.HttpProcessor.process(HttpP
> rocessor.java:1011)
> at
> org.apache.catalina.connector.http.HttpProcessor.run(HttpProce
> ssor.java:1106)
> at java.lang.Thread.run(Thread.java:534)
> end: 2 -------------------
>
> Tuesday, July 29, 2003, 5:45:48 PM, you wrote:
>
> HMLS> I'll have to do some testing ... looks like the mark of
> Resin (the
> HMLS> blinding fast but not always accurate server :-). Seriously, I
> HMLS> get a stream of problems related to Resin ... Resin's
> XML parser
> HMLS> causes problems, now something looks odd here with
> Resin possibly
> HMLS> invoking the servlet twice in a single request?
>
>
> --
> Best regards,
> DarkIT mailto:darkit@mail.ru
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Re[4]: another renderComponent question
Posted by "DarkIT Mail.RU" <da...@mail.ru>.
Hello Howard,
I've just tested such page on Tomcat 4.0.1
<form jwcid="@Form" listener="ognl:listeners.formSubmit">
<span jwcid="cache">
<strong>ClearView Test Home Page</strong>
<span jwcid="insertDate"/>
</span>
<br/>
<span jwcid="@ActionLink" listener="ognl:listeners.flushAction">Flush</span>
</form>
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
System.out.println("begin: "+i+" -------------------");
new Throwable().printStackTrace();
System.out.println("end: "+i+" -------------------");
i++;
super.renderComponent(writer, cycle);
}
If i just refresh(push Ctrl+F5 in teh browser) the page then my component is rendered once, but if
i push ActionLink, than tomcat does it like resin :
begin: 1 -------------------
java.lang.Throwable
at com.bonasource.tapestry.component.cache.CacheTag.renderComponent(CacheTag.java:44)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
at org.apache.tapestry.form.Form.renderComponent(Form.java:394)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
at org.apache.tapestry.engine.RequestCycle.rewindPage(RequestCycle.java:548)
at org.apache.tapestry.engine.ActionService.service(ActionService.java:199)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:534)
end: 1 -------------------
begin: 2 -------------------
java.lang.Throwable
at com.bonasource.tapestry.component.cache.CacheTag.renderComponent(CacheTag.java:44)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:673)
at org.apache.tapestry.form.Form.renderComponent(Form.java:394)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:411)
at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:775)
at org.apache.tapestry.engine.ActionService.service(ActionService.java:206)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:534)
end: 2 -------------------
Tuesday, July 29, 2003, 5:45:48 PM, you wrote:
HMLS> I'll have to do some testing ... looks like the mark of Resin (the blinding fast but not always
HMLS> accurate server :-). Seriously, I get a stream of problems related to Resin ... Resin's XML parser
HMLS> causes problems, now something looks odd here with Resin possibly invoking the servlet twice in a
HMLS> single request?
--
Best regards,
DarkIT mailto:darkit@mail.ru
RE: Re[2]: another renderComponent question
Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
I'll have to do some testing ... looks like the mark of Resin (the blinding fast but not always
accurate server :-). Seriously, I get a stream of problems related to Resin ... Resin's XML parser
causes problems, now something looks odd here with Resin possibly invoking the servlet twice in a
single request?
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
> -----Original Message-----
> From: DarkIT Mail.RU [mailto:darkit@mail.ru]
> Sent: Tuesday, July 29, 2003 9:02 AM
> To: 'Tapestry users'; Howard M. Lewis Ship
> Subject: Re[2]: another renderComponent question
>
>
> Hello Howard,
>
> Tuesday, July 29, 2003, 4:27:00 PM, you wrote:
>
> HMLS> Please set a break point and show stack traces. If you
> override renderComponent() it will be
> HMLS> invoked only when the component actually renders.
> Component Java Class:
> public class FlushTag extends BaseComponent{
> static int i = 1;
> protected void renderComponent(IMarkupWriter writer,
> IRequestCycle cycle) {
> System.out.println("begin:
> "+i+"----------------------------------");
> new Throwable().printStackTrace();
> System.out.println("end:
> "+i+"----------------------------------");
> i++;
> super.renderComponent(writer, cycle);
> }
> }
>
> Usage this component in page
> <body>
> <form jwcid="@Form" listener="ognl:listeners.formSubmit">
> .........
> <span jwcid="@ActionLink"
> listener="ognl:listeners.flushAction">Flush</span>
> </form>
> ...............
> <span jwcid="flush"/> <!--------- here it is -->
> ..............
> </body>
>
> Stack trace:
>
> begin: 1----------------------------------
> at
> com.bonasource.tapestry.component.cache.FlushTag.renderCompone
> nt(FlushTag.java:32)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> at
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> e.java:411)
> at
> org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> actEngine.java:775)
> at
> org.apache.tapestry.engine.HomeService.service(HomeService.java:104)
> at
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> ne.java:913)
> at
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:238)
> at
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:199)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.caucho.server.http.FilterChainServlet.doFilter(FilterChain
> Servlet.java:82)
> at
> com.caucho.server.http.Invocation.service(Invocation.java:278)
> at
> com.caucho.server.http.CacheInvocation.service(CacheInvocation
> .java:129)
> at
> com.caucho.server.http.ServletServer.serviceTop(ServletServer.
> java:847)
> at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
> at
> com.caucho.server.http.HttpRequest.handleConnection(HttpReques
> t.java:158)
> at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
> at java.lang.Thread.run(Thread.java:534)
> end: 1----------------------------------
> begin: 2----------------------------------
> java.lang.Throwable
> at
> com.bonasource.tapestry.component.cache.FlushTag.renderCompone
> nt(FlushTag.java:32)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponen
> t.java:159)
> at
> org.apache.tapestry.AbstractComponent.render(AbstractComponent
> .java:896)
> at
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
> at
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycl
> e.java:411)
> at
> org.apache.tapestry.engine.AbstractEngine.renderResponse(Abstr
> actEngine.java:775)
> at
> org.apache.tapestry.engine.HomeService.service(HomeService.java:104)
> at
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngi
> ne.java:913)
> at
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:238)
> at
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:199)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.caucho.server.http.FilterChainServlet.doFilter(FilterChain
> Servlet.java:82)
> at
> com.caucho.server.http.Invocation.service(Invocation.java:278)
> at
> com.caucho.server.http.CacheInvocation.service(CacheInvocation
> .java:129)
> at
> com.caucho.server.http.ServletServer.serviceTop(ServletServer.
> java:847)
> at
> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
> at
> com.caucho.server.http.HttpRequest.handleConnection(HttpReques
> t.java:158)
> at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
> at java.lang.Thread.run(Thread.java:534)
> end: 2----------------------------------
>
> HMLS> Why override renderComponent() when your component has
> an HTML template? Generally, better to
> HMLS> override prepareForRender() and cleanupAfterRender()
> and leave renderComoponent() alone.
>
> I'm porting OSCache to tapestry that's why i have to oveload
> renderComponent. In one case i call super.renderComponent. In cache
> case i use writer.printRaw(cacheData); I can do it only in
> renderComponent function.
>
> --
> Best regards,
> DarkIT mailto:darkit@mail.ru
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
Re[2]: another renderComponent question
Posted by "DarkIT Mail.RU" <da...@mail.ru>.
Hello Howard,
Tuesday, July 29, 2003, 4:27:00 PM, you wrote:
HMLS> Please set a break point and show stack traces. If you override renderComponent() it will be
HMLS> invoked only when the component actually renders.
Component Java Class:
public class FlushTag extends BaseComponent{
static int i = 1;
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle) {
System.out.println("begin: "+i+"----------------------------------");
new Throwable().printStackTrace();
System.out.println("end: "+i+"----------------------------------");
i++;
super.renderComponent(writer, cycle);
}
}
Usage this component in page
<body>
<form jwcid="@Form" listener="ognl:listeners.formSubmit">
.........
<span jwcid="@ActionLink" listener="ognl:listeners.flushAction">Flush</span>
</form>
...............
<span jwcid="flush"/> <!--------- here it is -->
..............
</body>
Stack trace:
begin: 1----------------------------------
at com.bonasource.tapestry.component.cache.FlushTag.renderComponent(FlushTag.java:32)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:411)
at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:775)
at org.apache.tapestry.engine.HomeService.service(HomeService.java:104)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:82)
at com.caucho.server.http.Invocation.service(Invocation.java:278)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
at com.caucho.server.http.ServletServer.serviceTop(ServletServer.java:847)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
at java.lang.Thread.run(Thread.java:534)
end: 1----------------------------------
begin: 2----------------------------------
java.lang.Throwable
at com.bonasource.tapestry.component.cache.FlushTag.renderComponent(FlushTag.java:32)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:159)
at org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:896)
at org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:341)
at org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:411)
at org.apache.tapestry.engine.AbstractEngine.renderResponse(AbstractEngine.java:775)
at org.apache.tapestry.engine.HomeService.service(HomeService.java:104)
at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:199)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:82)
at com.caucho.server.http.Invocation.service(Invocation.java:278)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:129)
at com.caucho.server.http.ServletServer.serviceTop(ServletServer.java:847)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:213)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:158)
at com.caucho.server.TcpConnection.run(TcpConnection.java:140)
at java.lang.Thread.run(Thread.java:534)
end: 2----------------------------------
HMLS> Why override renderComponent() when your component has an HTML template? Generally, better to
HMLS> override prepareForRender() and cleanupAfterRender() and leave renderComoponent() alone.
I'm porting OSCache to tapestry that's why i have to oveload
renderComponent. In one case i call super.renderComponent. In cache
case i use writer.printRaw(cacheData); I can do it only in
renderComponent function.
--
Best regards,
DarkIT mailto:darkit@mail.ru
RE: another renderComponent question
Posted by "Howard M. Lewis Ship" <hl...@comcast.net>.
Please set a break point and show stack traces. If you override renderComponent() it will be
invoked only when the component actually renders.
Why override renderComponent() when your component has an HTML template? Generally, better to
override prepareForRender() and cleanupAfterRender() and leave renderComoponent() alone.
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/tapestry
> -----Original Message-----
> From: DarkIT Mail.RU [mailto:darkit@mail.ru]
> Sent: Tuesday, July 29, 2003 5:59 AM
> To: Tapestry users
> Subject: another renderComponent question
>
>
> hi alls,
>
> I have a component :
> JWC file:
>
> <component-specification class="MyComponent"
> allow-body="yes" allow-informal-parameters="no">
> <description>My component</description>
> <parameter name="key" property-name="key"
> type="java.lang.String" direction="in" required="no"/>
> </component-specification>
>
> HTML file:
> <span jwcid="$content$">
> <span jwcid="@RenderBody">Render body</span>
> </span>
>
> And it's used in page like this :
>
> <span jwcid="myComponentId">
> <strong>Test Home Page</strong>
> <span jwcid="insertDate"/>
> </span>
>
> In my component I overloaded renderComponent function and i
> was very wondered that this method is invoked twice. Is it a
> bag or is it a feature. If it's feature , i can't undestand
> it, because we do the same work twice.
>
> --
> Best regards,
> DarkIT mailto:darkit@mail.ru
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>