Thanks, now it works. My filter is : ----------------------------------------- public void service(WebRequest request, WebResponse response, WebRequestServicer servicer) throws IOException { // Request Cycle Begin servicer.service(request, response); // Request Cycle End WebSession webSession = request.getSession(false); if (webSession!=null) { String visitKey = "state:" + APP_NAME + ":visit"; Visit visit = (Visit) webSession.getAttribute(visitKey); // use visit } } -----------------------------------------
So, we again have this visit-from-session code, but the only inelegant bit is this visitKey assembling part may be :) --- James Carman <[EMAIL PROTECTED]> wrote: > Sorry. Try > tapestry.request.WebRequestServicerPipeline. As I > said, it was > off the top of my head. Sorry for the typo. > > -----Original Message----- > From: Dobrin Ivanov > [mailto:[EMAIL PROTECTED] > Sent: Friday, September 22, 2006 1:45 PM > To: Tapestry users > Subject: RE: How to listent for the Request Cycle > End > > 10x > > Now i get the error below. Any chance that there are > some docs for this? > > 1547 [main] ERROR > org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/weprom] > - Servlet /weprom threw load() exception > org.apache.hivemind.ApplicationRuntimeException: > Error > at context:/WEB-INF/hivemodule.xml, line 19, column > 79: Module weprom has contributed to unknown con > figuration point > hivemind.request.WebRequestServicerPipeline. The > contribution has been ignored. > [context:/WEB-INF/hivemodule.xml, line 19, column > 79] > at > org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39 > ) > > --- James Carman <[EMAIL PROTECTED]> wrote: > > > You can put it in your WEB-INF folder or in > > WEB-INF/classes/META-INF. > > Tapestry (actually HiveMind) will find it in > either > > case. > > > > -----Original Message----- > > From: Dobrin Ivanov > > [mailto:[EMAIL PROTECTED] > > Sent: Friday, September 22, 2006 1:26 PM > > To: Tapestry users > > Subject: RE: How to listent for the Request Cycle > > End > > > > And where should be located my hivemodule.xml? > (I'm > > using just Tapestry, I know it lies above hivemind > > microkernel...) > > > > > > --- James Carman <[EMAIL PROTECTED]> > wrote: > > > > > To plug into the WebRequestServicerPipeline, you > > > implement the > > > WebRequestServicerFilter interface: > > > > > > public class MyFilter implements > > > WebRequestServicerFilter > > > { > > > } > > > > > > Then, in your hivemodule.xml you plug it into > the > > > pipeline: > > > > > > <contribution > > > > > > configuration-id="hivemind.request.WebRequestServicerPipeline"> > > > <filter name="MyFilter" > > object="instance:MyFilter" > > > /> > > > </contribution> > > > > > > That's off the top of my head, but you get the > > idea. > > > This basically acts > > > like a servlet filter, but you can plug > > > hivemind-managed filters in (so you > > > can inject stuff into your implementation > > objects). > > > > > > > > > -----Original Message----- > > > From: Dobrin Ivanov > > > [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, September 20, 2006 1:30 PM > > > To: Tapestry users > > > Subject: Re: How to listent for the Request > Cycle > > > End > > > > > > I do not know about this custom Engine classes > > > changes > > > (frowned)... > > > is there some information about this topic? > > > > > > .. and also the other one with the > > > > pipelines/WebRequestServicerPipeline/interceptors? > > > > > > --- James Carman <[EMAIL PROTECTED]> > > wrote: > > > > > > > You can plugin to the webrequest servicer > > > pipeline. > > > > > > > > > Ummm... you could do that too. You're > correct > > > > that it would avoid the > > > > > visit-from-session inelegant bit. It would > be > > > > conceptually similar to > > > > > the servlet filter approach. The downside > > would > > > > be that custom Engine > > > > > classes are frowned upon as Tapestry goes > > > forward. > > > > I'm not sure there > > > > > is an Engine.getVisit() in 4.1. > > > > > > > > > > None of the approaches is perfect since > > Tapestry > > > > doesn't provide a > > > > > built-in end-of-request hook. Well, there > is > > a > > > > call to > > > > > monitor.serviceEnd() that you could use > > without > > > > subclassing Engine. > > > > > > > > > > > > > > > Dobrin Ivanov wrote: > > > > >> Hi, > > > > >> Thanks Bryan, this looks like a hack:) > > > > >> > > > > >> What do you think if I override the > Engine's > > > > method: > > > > >> > > > > >> public void service(WebRequest request, > > > > WebResponse > > > > >> response) throws IOException { > > > > >> super.service(request, response); > > > > >> // insert code here > > > > >> } > > > > >> > > > > >> Is this a bad approach? > > > > >> > > > > >> > > > > >> --- Bryan Lewis <[EMAIL PROTECTED]> wrote: > > > > >> > > > > >> > > > > >>> It sounds like a servlet listener method > > could > > > > work > > > > >>> for you. Or a > > > > >>> servlet filter as in the previous > > suggestion. > > > > Both > > > > >>> would give you a > > > > >>> hook into the end-of-request, and you can > > get > > > to > > > > the > > > > >>> Visit via the > > > > >>> session. Here's a listener approach. > > > > >>> > > > > >>> > > > > >>> public class EventListener implements > > > > >>> ServletRequestListener > > > > >>> { > > > > >>> public void > > > > >>> requestInitialized(ServletRequestEvent > sre) > > { > > > > >>> // This method might not need to > do > > > > >>> anything. > > > > >>> } > > > > >>> > > > > >>> public void > > > > requestDestroyed(ServletRequestEvent > > > > >>> sre) > > > > >>> { > > > > >>> // Call a static method in your > > > > >>> thread-storage class to get your > > > > >>> data. > > > > >>> > > > > >>> // The slightly messy part is > > getting > > > > the > > > > >>> Visit from the session. > === message truncated === __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]