I agree, but i think this behaviour 'should' be avoid if the index has not an activation method with the corresponding parameter length and type... A 404 should be automatically raised for this kind of request.
2009/10/7 Jan Jirout <jjir...@indracompany.com> > Hi, > > It seems that it works like this. If you access not existing page > http://localhost/demo/bla it's translated in to > http://localhost/demo/index/blah. I think that it's default behavior. > > Jan > > > > On Oct 7, 2009, at 10:24 AM, cordenier christophe wrote: > > 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 >>> >>> >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >