Hi
I use this approach:
@Override
protected ISessionStore newSessionStore() {
return new SecondLevelCacheSessionStore(this, new DiskPageStore()) {
@Override
protected void onBind(Request request, Session newSession) {
sessionMap.put(newSession.getId(), (ZeuzSession)
newSession);
super.onBind(request, newSession);
}
@Override
protected void onUnbind(String sessionId) {
ZeuzSession session = (ZeuzSession)
sessionMap.get(sessionId);
session.onBeforeDestroy();
sessionMap.remove(sessionId);
super.onUnbind(sessionId);
}
};
}
Session.java
public void onBeforeDestroy() {
getPerson().setLoggedIn(false);
}
There are several problems(like what if the application crashes) with
this approach, but in my case it's okay.. I do not have trouble with
hibernate...
Mendeleev wrote:
I need to add functionality to my Wicket application that allows me to record
in the MySQL database the exact time a user logs out of the application.
This includes recording the time the session is destroyed by the web
container due to user inactivity.
I tried:
1. An implementation of HttpSessionListener
2. Extending the HttpSessionStore class
3. WebApplication.sessionDestroyed(String sessionid)
4. An implementation of HttpSessionBindingListener
All of these do not work in my case, because the methods are called AFTER
the session is already destroyed. At that time, the hibernate session that
connects to the database, does not exist anymore. I cannot reopen it,
because the Application.get() method returns null at this time.
My question is: is there any way that I can record the destruction right
before it happens? Is there some sort of a listener I can implement?
If not, how is the wicket application notified that the user navigates away
from the page, starting a period of inactivity? If there is a way I can
register that happening, I can solve the problem by adding a timer.
Thanks,
Drago
--
-Wicket for love
Nino Martinez Wael
Java Specialist @ Jayway DK
http://www.jayway.dk
+45 2936 7684
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]