Hi folks,
The Tapestry 4 Virtual Libray (VLib) example contains an example (check
out \examples\Vlib\src\java\org\apache\tapestry\vlib\services in the
full distribution). It has HLS's DiscardSessionFilter, you'll also need
an ApplicationLifecycle, ApplicationLifecycleImpl and in your
hivemodule.xml something like :-
<service-point id="ApplicationLifecycle">
Controls lifecycle operations; specifically logging out.
<invoke-factory model="threaded">
<construct class="ApplicationLifecycleImpl">
</construct>
</invoke-factory>
</service-point>
<service-point id="DiscardSessionFilter"
interface="org.apache.tapestry.services.WebRequestServicerFilter">
Filter used to optionally discard the session at the end of a
request (typically after a logout).
<invoke-factory>
<construct class="DiscardSessionFilter">
<set-object property="applicationLifecycle"
value="service:ApplicationLifecycle"/>
</construct>
</invoke-factory>
</service-point>
My Env : WebLogic 8.1SP3, Tapestry 4 beta12 [time to upgrade I guess!],
Java 1.4.2_08, J2EE declarative security with the friendly URL's.
Cheers,
Wayne
-----Original Message-----
From: Geoff Longman [mailto:[EMAIL PROTECTED]
Sent: Wednesday, February 01, 2006 10:06 AM
To: Tapestry users
Subject: Re: IllegalStateException
Hmm. Any Tap4 users out there (I'm getting there) care to share how they
are killing a session?
Geoff
On 1/30/06, Bryan Lewis <[EMAIL PROTECTED]> wrote:
> After upgrading our Tap3 apps to Tap4, I'm seeing an
> "IllegalStateException: setAttribute: Session already invalidated".
> (Stack trace below.) It happens whenever a user manually logs out,
> when we call getRestartService().service(getRequestCycle()). It's
> not really a problem because it's only a stack-trace -- the user
> doesn't see anything wrong -- but it'll clutter up our logs with about
> a hundred pointless exception traces a day. Yeah, I know, it's a
tough life.
>
> The exception occurs not on session.invalidate() but a bit later when
> ApplicationStateManager.flush() causes a WebSession.store(). Tap3
> used to have a line of code:
>
> // Make isStateful() return false, so that the servlet doesn't
> // try to store the engine back into the (now invalid)
session.
> _stateful = false;
>
> It would be nice if a similar thing could be done in Tap4. Worst
> case, I could override Engine.service() but I'm trying to wean myself
> away from engine overriding.
>
>
> java.lang.IllegalStateException: setAttribute: Session already
> invalidated
>
> org.apache.catalina.session.StandardSession.setAttribute(StandardSessi
> on.java:1229)
>
> org.apache.catalina.session.StandardSessionFacade.setAttribute(Standar
> dSessionFacade.java:129)
>
> org.apache.tapestry.web.ServletWebSession.setAttribute(ServletWebSessi
> on.java:62)
>
> org.apache.tapestry.engine.state.SessionScopeManager.store(SessionScop
> eManager.java:90)
>
> $StateObjectPersistenceManager_10918d5a17f.store($StateObjectPersisten
> ceManager_10918d5a17f.java)
>
> org.apache.tapestry.engine.state.StateObjectManagerImpl.store(StateObj
> ectManagerImpl.java:55)
>
> org.apache.tapestry.engine.state.ApplicationStateManagerImpl.flush(App
> licationStateManagerImpl.java:87)
>
> $ApplicationStateManager_10918d59fcb.flush($ApplicationStateManager_10
> 918d59fcb.java)
>
> $ApplicationStateManager_10918d59fcc.flush($ApplicationStateManager_10
> 918d59fcc.java)
>
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:
> 290)
>
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(Invok
> eEngineTerminator.java:60)
>
> $WebRequestServicer_10918d5a0ab.service($WebRequestServicer_10918d5a0a
> b.java)
>
> $WebRequestServicer_10918d5a0a7.service($WebRequestServicer_10918d5a0a
> 7.java)
>
> org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.ser
> vice(WebRequestServicerPipelineBridge.java:56)
>
> $ServletRequestServicer_10918d5a08b.service($ServletRequestServicer_10
> 918d5a08b.java)
>
> org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequ
> estInjector.java:55)
>
> $ServletRequestServicerFilter_10918d5a087.service($ServletRequestServi
> cerFilter_10918d5a087.java)
>
> $ServletRequestServicer_10918d5a08d.service($ServletRequestServicer_10
> 918d5a08d.java)
>
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(Multipart
> DecoderFilter.java:52)
>
> $ServletRequestServicerFilter_10918d5a085.service($ServletRequestServi
> cerFilter_10918d5a085.java)
>
> $ServletRequestServicer_10918d5a08d.service($ServletRequestServicer_10
> 918d5a08d.java)
>
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRe
> questEncoding.java:53)
>
> $ServletRequestServicerFilter_10918d5a089.service($ServletRequestServi
> cerFilter_10918d5a089.java)
>
> $ServletRequestServicer_10918d5a08d.service($ServletRequestServicer_10
> 918d5a08d.java)
>
> $ServletRequestServicer_10918d59fff.service($ServletRequestServicer_10
> 918d59fff.java)
>
> org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.ja
> va:123)
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
The Spindle guy. http://spindle.sf.net
Get help with Spindle:
http://lists.sourceforge.net/mailman/listinfo/spindle-user
Blog: http://jroller.com/page/glongman
Feature Updates: http://spindle.sf.net/updates
---------------------------------------------------------------------
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]