Hi

>From my humble point of view, using the activate method to send an error
when page doesn't exist is not the right place. Imagine that you have
subpackage with there own index page, you will have to duplicate your code.

But your question is really pertinent, and I had a closer look at the
ComponentEventLinkEncoder service which is used to identify pages during
request dispatch. And it makes me ask another question :

Why an URL like http://localhost/demo/blah (where demo is the context) is
translated http://localhost/demo/index/blah where 'blah' become the
activation context of the index even if there there is no activation method
?

Does it mean that since we have an index page in our application, 404 will
never be thrown automatically ?

Christophe.

2009/10/6 Kalle Korhonen <kalle.o.korho...@gmail.com>

> Don't think I can help you much, but I can verify the same sendError
> and error configurations work for me on Tomcat 5.5 (haven't tried on
> Tomcat 6).
>
> Kalle
>
>
> On Tue, Oct 6, 2009 at 3:05 AM, Jan Jirout <jjir...@indracompany.com>
> wrote:
> > Hi All,
> >
> > I'm playing some time with t5. I have meet simple problem. I hope that
> it's
> > not my fault.
> >
> > So.
> >
> > I would like to handle "Error 404" in my application so I have in
> web.xml:
> >
> >        <filter-mapping>
> >                <filter-name>app</filter-name>
> >                <url-pattern>/*</url-pattern>
> >                <dispatcher>REQUEST</dispatcher>
> >                <dispatcher>ERROR</dispatcher>
> >        </filter-mapping>
> >
> >        <error-page>
> >                <error-code>404</error-code>
> >                <location>/error404</location>
> >        </error-page>
> >
> >
> > My Index.java is:
> >
> >
> >    void onActivate(final String pageUrl) throws IOException {
> >        if (isKnownPage(pageUrl)) {
> >            //show page
> >        } else {
> >             response.sendError(404, null);
> >        }
> >    }
> >
> > If I access page "/hello"  then pageUrl property is "hello". If there is
> > page /hello then this page is normally processed. If I sendError then
> page
> > error404 should be shown. This Error page exists. So when I access /blah
> > then /error404 page is shown. It works fine with jetty. But it doesn't
> work
> > with tomcat 6.
> >
> > I have tried to debug it, and it seems to me, that information about
> content
> > type is lost. In class BufferedGZipOutputStream is already information
> about
> > content type lost but in class PageResponseRendererImpl is still present.
> >
> > thanks for help
> >
> > Jan
> >
> >
> >
> > Here is my stack trace:
> > SEVERE: Servlet.service() for servlet default threw exception
> > java.lang.NullPointerException
> >        at
> >
> org.apache.tapestry5.internal.services.ResponseCompressionAnalyzerImpl.isCompressable(ResponseCompressionAnalyzerImpl.java:65)
> >        at
> >
> $ResponseCompressionAnalyzer_1241954ff2c.isCompressable($ResponseCompressionAnalyzer_1241954ff2c.java)
> >        at
> >
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.openResponseOutputStream(BufferedGZipOutputStream.java:77)
> >        at
> >
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.checkForCutover(BufferedGZipOutputStream.java:70)
> >        at
> >
> org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.write(BufferedGZipOutputStream.java:116)
> >        at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
> >        at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263)
> >        at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106)
> >        at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190)
> >        at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111)
> >        at java.io.BufferedWriter.write(BufferedWriter.java:212)
> >        at java.io.PrintWriter.write(PrintWriter.java:412)
> >        at java.io.PrintWriter.write(PrintWriter.java:429)
> >        at java.io.PrintWriter.print(PrintWriter.java:559)
> >        at org.apache.tapestry5.dom.Text.toMarkup(Text.java:59)
> >        at
> > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840)
> >        at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356)
> >        at
> > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840)
> >        at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356)
> >        at
> > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840)
> >        at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356)
> >        at
> > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840)
> >        at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356)
> >        at
> > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840)
> >        at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356)
> >        at org.apache.tapestry5.dom.Document.toMarkup(Document.java:163)
> >        at org.apache.tapestry5.dom.Node.toMarkup(Node.java:80)
> >        at
> >
> org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57)
> >        at
> >
> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67)
> >        at
> >
> $PageResponseRenderer_1241954ff57.renderPageResponse($PageResponseRenderer_1241954ff57.java)
> >        at
> >
> org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:77)
> >        at
> >
> $RequestExceptionHandler_1241954ff38.handleRequestException($RequestExceptionHandler_1241954ff38.java)
> >        at
> >
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42)
> >        at
> > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java)
> >        at
> >
> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
> >        at
> > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java)
> >        at
> >
> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
> >        at
> > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java)
> >        at
> >
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
> >        at
> > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java)
> >        at
> >
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
> >        at
> >
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
> >        at
> >
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
> >        at
> >
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
> >        at
> > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java)
> >        at
> > $RequestHandler_1241954ff2f.service($RequestHandler_1241954ff2f.java)
> >        at
> >
> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
> >        at
> >
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> >        at
> >
> $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java)
> >        at
> > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
> >        at
> >
> $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java)
> >        at
> >
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> >        at
> >
> $HttpServletRequestFilter_1241954ff2d.service($HttpServletRequestFilter_1241954ff2d.java)
> >        at
> >
> $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java)
> >        at
> >
> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
> >        at
> >
> $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java)
> >        at
> >
> $HttpServletRequestHandler_1241954ff2b.service($HttpServletRequestHandler_1241954ff2b.java)
> >        at
> > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
> >        at
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> >        at
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> >        at
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> >        at
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> >        at
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> >        at
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> >        at
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> >        at
> >
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> >        at
> >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
> >        at
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> >        at
> > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
> >        at java.lang.Thread.run(Thread.java:619)
> >
> >
> >
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>

Reply via email to