Peter, Thanks fo jumping in :-) - I was away and I wouldn't have readily known the answer anyway, so I along with Jan appreciate your sharing.
Jan, So is there something incorrect in the wiki, or perhaps something that would be worth adding as a warning? chris Jan Vissers wrote: > Great Peter, > > This was indeed the problem. As I pointed out earlier - I use(d) Chris > great writeup on dispatchers on the wiki and also another follow up > article by > Stephane Decleire - > http://wiki.apache.org/tapestry/Tapestry5HowToControlAccess > Which contains the same anomaly. > > Thx again, > -J. > > >> Sorry to jump in here Chris... Jan not exactly sure what you are doing >> since you haven't shown your code, but the exception is telling you "the >> response has been committed" , which means you are trying to modify a >> Response that is being processed, i.e.: it is read only. If you >> interrupt the response, for example with a redirect, then try returning >> true. >> >> if(interruptHere)){ >> response.sendRedirect("/login"); >> return true; >> } >> return false; >> >> Peter >> >> Jan Vissers wrote: >> >>> Hi Chris, >>> >>> Thank you. As a matter of fact I used your wiki entries as my main >>> inspiration. So what I do now is: >>> >>> use: "before:RootPath" for the contributation and >>> return 'false' on the dispath for '/login and '/assets/' >>> >>> This works but in the background the following stuff is logged >>> (To be more precise I'm using an ASO in my dispatcher) >>> >>> Question is: should this worry me? >>> >>> [DEBUG] SecurityController In dispatch for / >>> [INFO] TimingFilter Request time: 1 ms >>> [ERROR] RequestExceptionHandler Processing of request failed with >>> uncaught exception: Cannot create a session after the response has been >>> committed >>> org.apache.tapestry.runtime.ComponentEventException: Cannot create a >>> session after the response has been committed >>> at >>> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1021) >>> at >>> org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:52) >>> at org.apache.tapestry.services.TapestryModule >>> $29.handle(TapestryModule.java:1607) >>> at >>> $PageRenderRequestHandler_1197add4787.handle($PageRenderRequestHandler_1197add4787.java) >>> at >>> $PageRenderRequestHandler_1197add4779.handle($PageRenderRequestHandler_1197add4779.java) >>> at >>> org.apache.tapestry.internal.services.RootPathDispatcher.dispatch(RootPathDispatcher.java:61) >>> at $Dispatcher_1197add4781.dispatch($Dispatcher_1197add4781.java) >>> at $Dispatcher_1197add4772.dispatch($Dispatcher_1197add4772.java) >>> at org.apache.tapestry.services.TapestryModule >>> $13.service(TapestryModule.java:944) >>> at com.*****.lighting.guidecontrol.view.services.AppModule >>> $1.service(AppModule.java:83) >>> at $RequestFilter_1197add4771.service($RequestFilter_1197add4771.java) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at >>> org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:42) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at org.apache.tapestry.services.TapestryModule >>> $3.service(TapestryModule.java:553) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at org.apache.tapestry.services.TapestryModule >>> $2.service(TapestryModule.java:520) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at >>> org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at org.apache.tapestry.internal.services.CheckForUpdatesFilter >>> $2.invoke(CheckForUpdatesFilter.java:93) >>> at org.apache.tapestry.internal.services.CheckForUpdatesFilter >>> $2.invoke(CheckForUpdatesFilter.java:84) >>> at >>> org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) >>> at >>> org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) >>> at >>> $RequestHandler_1197add4773.service($RequestHandler_1197add4773.java) >>> at >>> $RequestHandler_1197add476a.service($RequestHandler_1197add476a.java) >>> at org.apache.tapestry.services.TapestryModule >>> $12.service(TapestryModule.java:924) >>> at >>> org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) >>> at >>> $HttpServletRequestFilter_1197add4769.service($HttpServletRequestFilter_1197add4769.java) >>> at >>> $HttpServletRequestHandler_1197add476b.service($HttpServletRequestHandler_1197add476b.java) >>> at >>> $HttpServletRequestHandler_1197add4768.service($HttpServletRequestHandler_1197add4768.java) >>> at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:168) >>> 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:175) >>> 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:286) >>> at >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >>> at org.apache.coyote.http11.Http11Protocol >>> $Http11ConnectionHandler.process(Http11Protocol.java:583) >>> at org.apache.tomcat.util.net.JIoEndpoint >>> $Worker.run(JIoEndpoint.java:447) >>> at java.lang.Thread.run(Thread.java:735) >>> Caused by: >>> java.lang.IllegalStateException: Cannot create a session after the >>> response has been committed >>> at >>> org.apache.catalina.connector.Request.doGetSession(Request.java:2301) >>> at org.apache.catalina.connector.Request.getSession(Request.java:2075) >>> at >>> org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833) >>> at >>> org.apache.tapestry.internal.services.RequestImpl.getSession(RequestImpl.java:88) >>> at $Request_1197add4783.getSession($Request_1197add4783.java) >>> at $Request_1197add475c.getSession($Request_1197add475c.java) >>> at >>> org.apache.tapestry.internal.services.SessionApplicationStatePersistenceStrategy.getSession(SessionApplicationStatePersistenceStrategy.java:42) >>> at >>> org.apache.tapestry.internal.services.SessionApplicationStatePersistenceStrategy.get(SessionApplicationStatePersistenceStrategy.java:48) >>> at org.apache.tapestry.internal.services.ApplicationStateManagerImpl >>> $ApplicationStateAdapter.getOrCreate(ApplicationStateManagerImpl.java:45) >>> at >>> org.apache.tapestry.internal.services.ApplicationStateManagerImpl.get(ApplicationStateManagerImpl.java:126) >>> at >>> $ApplicationStateManager_1197add4780.get($ApplicationStateManager_1197add4780.java) >>> at com.*****.lighting.guidecontrol.view.base.AbstractBasePage._ >>> $read_breadCrumbHolder(AbstractBasePage.java) >>> at >>> com.*****.lighting.guidecontrol.view.base.AbstractBasePage.onActivate(AbstractBasePage.java:130) >>> at >>> com.*****.lighting.guidecontrol.view.base.AbstractBasePage.dispatchComponentEvent(AbstractBasePage.java) >>> at >>> org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) >>> at >>> org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) >>> ... 43 more >>> [DEBUG] SecurityController In dispatch for /login >>> [DEBUG] AbstractBasePage Page initialization added to breadcrumbs: >>> login;jsessionid=278B5A7E10E6912784BE444C0CD885B1 >>> [INFO] TimingFilter Request time: 6 ms >>> >>> -J. >>> >>> On Wed, 2008-04-23 at 12:32 +0200, Chris Lewis wrote: >>> >>> >>>> Hi Jan, >>>> >>>> The first 2 paragraphs of this article cover what you want to do: >>>> >>>> http://wiki.apache.org/tapestry/Tapestry5HowToCreateADispatcher >>>> >>>> Included also are relevant links to javadocs, as well as references to >>>> the TapestryModule, where you can see how it influences dispatcher >>>> ordering. >>>> >>>> chris >>>> >>>> Jan Vissers wrote: >>>> >>>> >>>>> Hi, >>>>> >>>>> Just posted a question on dispatcher chain - but I think the subject >>>>> line was way to unclear - so sorry for asking the question again. >>>>> >>>>> I want all of my pages (also the one that is shown when I access root >>>>> context without anything - so no '/start') to be passed thru my >>>>> dispatcher. How can I do that? >>>>> >>>>> -J. >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>>>> >>>>> >>>>> >>>>> >>>>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- http://thegodcode.net