Re: best way to detect session termination
Hi, _userDao shouldn't be null if you annotate it in your applicationContext.xml and grep it out of the ApplicationContext, e.g. applicationContext.getBean("sessionDestroyedService"); otherwise spring would have already failed as it was not able to autowire _userDao. Best Regards, Ilja Pavkovic Am Donnerstag, 18. Februar 2010 12:52:46 schrieb Andreas Lüdtke: > Ilja, > > thanks for your reply. If I create a service class like the one below, my > _userDao object is always null. This _userDao works perfectly in other > parts of my app. Do I need to inject the dao in a special way? I think the > integration into spring is the problem, because I don't know where to > place the corresponding part in the config/xml files. As I said, my > knowledge of spring is limited. > > My class looks like this: > > @Service > @Transactional > public class SessionDestroyedService > { > @ Autowired > private UserDao _userDao; > > public void forceLogout(String sessionId) > { > if (_userDao == null) > System.out.println("SessionDestroyedService.forceLogout(): _userDao > is NULL"); > else > { > System.out.println("SessionDestroyedService.forceLogout(): _userDao > is OK"); > User user = _userDao.getBySessionId(sessionId); > if (user != null) > { > // do the work here... > } > } > } > } > > Andreas > > > -Original Message----- > > From: Ilja Pavkovic [mailto:ilja.pavko...@binaere-bauten.de] > > Sent: Wednesday, February 17, 2010 5:38 PM > > To: users@wicket.apache.org > > Subject: Re: best way to detect session termination > > > > Hi, > > > > create a service class marked with Annotation @Transactional > > and manage it > > with spring. Calls to this function will have get a session > > from the spring > > context. > > > > Spring will open a session before calling any function on > > this service and > > close the session afterwards. > > > > @Service > > @Transactional > > public class MyService { > > > > @Autowired > > private MyDao dao; > > > > public destroySession(String sessionId) { > > > > myDao.deleteMySessionById(sessionId); > > > > } > > > > } > > > > Best Regards, > > > > Ilja Pavkovic > > > > Am Mittwoch, 17. Februar 2010 13:24:11 schrieb Andreas Lüdtke: > > > Vineet, > > > > > > I'm now storing the session id in the user record. But now > > > > I have another > > > > > problem, because hibernate tells me now in sessionDestroy(): > > > > > > org.hibernate.HibernateException: No Hibernate Session > > > > bound to thread, and > > > > > configuration does not allow creation of non-transactional one here > > > > > > I'm using spring to inject my dao. I also tried to use the dao in my > > > HttpSessionListener which is configured in web.xml, but > > > > that prevents my > > > > > app from being started by Tomcat. > > > Next I did was to create a manual created hibernate > > > > session, but that > > > > > raised other problems like a missing hibernate.hbm.xml file > > > > and I don't > > > > > want to configure that manually... > > > > > > Does somebody see another way to access my user data, or am I doing > > > something stupid? > > > > > > Andreas > > > > > > > -Original Message- > > > > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > > > > Sent: Tuesday, February 16, 2010 2:15 PM > > > > To: users@wicket.apache.org; sam.lued...@t-online.de > > > > Subject: Re: best way to detect session termination > > > > > > > > can't you simply do that in > > > > webapplication.sessiondestroy(String sessionid), > > > > > > > > you can store the sessionid when user logs in and on > > > > sessiondestroyed > > > > > > ,search the user by this sessionid , > > > > and change whatever in user object and then persist it.. > > > > > > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > > > > > > > > wrote: > > > > > I studied the classes HttpSessionBindingListener and > > > > > AbstractHttpSessionStore > > > > > as you noted, but I think
RE: best way to detect session termination
Ilja, thanks for your reply. If I create a service class like the one below, my _userDao object is always null. This _userDao works perfectly in other parts of my app. Do I need to inject the dao in a special way? I think the integration into spring is the problem, because I don't know where to place the corresponding part in the config/xml files. As I said, my knowledge of spring is limited. My class looks like this: @Service @Transactional public class SessionDestroyedService { @ Autowired private UserDao _userDao; public void forceLogout(String sessionId) { if (_userDao == null) System.out.println("SessionDestroyedService.forceLogout(): _userDao is NULL"); else { System.out.println("SessionDestroyedService.forceLogout(): _userDao is OK"); User user = _userDao.getBySessionId(sessionId); if (user != null) { // do the work here... } } } } Andreas > -Original Message- > From: Ilja Pavkovic [mailto:ilja.pavko...@binaere-bauten.de] > Sent: Wednesday, February 17, 2010 5:38 PM > To: users@wicket.apache.org > Subject: Re: best way to detect session termination > > Hi, > > create a service class marked with Annotation @Transactional > and manage it > with spring. Calls to this function will have get a session > from the spring > context. > > Spring will open a session before calling any function on > this service and > close the session afterwards. > > @Service > @Transactional > public class MyService { > @Autowired > private MyDao dao; > > public destroySession(String sessionId) { > myDao.deleteMySessionById(sessionId); > } > } > > Best Regards, > Ilja Pavkovic > > Am Mittwoch, 17. Februar 2010 13:24:11 schrieb Andreas Lüdtke: > > Vineet, > > > > I'm now storing the session id in the user record. But now > I have another > > problem, because hibernate tells me now in sessionDestroy(): > > > > org.hibernate.HibernateException: No Hibernate Session > bound to thread, and > > configuration does not allow creation of non-transactional one here > > > > I'm using spring to inject my dao. I also tried to use the dao in my > > HttpSessionListener which is configured in web.xml, but > that prevents my > > app from being started by Tomcat. > > Next I did was to create a manual created hibernate > session, but that > > raised other problems like a missing hibernate.hbm.xml file > and I don't > > want to configure that manually... > > > > Does somebody see another way to access my user data, or am I doing > > something stupid? > > > > Andreas > > > > > -Original Message- > > > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > > > Sent: Tuesday, February 16, 2010 2:15 PM > > > To: users@wicket.apache.org; sam.lued...@t-online.de > > > Subject: Re: best way to detect session termination > > > > > > can't you simply do that in > > > webapplication.sessiondestroy(String sessionid), > > > > > > you can store the sessionid when user logs in and on > sessiondestroyed > > > > > > ,search the user by this sessionid , > > > and change whatever in user object and then persist it.. > > > > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > > > > > > wrote: > > > > I studied the classes HttpSessionBindingListener and > > > > AbstractHttpSessionStore > > > > as you noted, but I think I'll still have no link between > > > > > > the SessionId > > > > > > > from > > > > the HTTPSession and my own Session. Maybe I'm missing > > > > > > something or "I don't > > > > > > > see the wood among all the trees" as we say in Germany... > > > > > > > > Andreas > > > > > > > > > -Original Message- > > > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > > Sent: Monday, February 15, 2010 7:08 PM > > > > > To: sam.lued...@t-online.de > > > > > Cc: users@wicket.apache.org > > > > > Subject: Re: best way to detect session termination > > > > > > > > > > You could use a HttpSessionBindingListener like Wicket > > > > > > does internally > > > > > > > > (see AbstractHttpSessionStore). Or as a hack store > > > > > > references t
Re: best way to detect session termination
Hi, create a service class marked with Annotation @Transactional and manage it with spring. Calls to this function will have get a session from the spring context. Spring will open a session before calling any function on this service and close the session afterwards. @Service @Transactional public class MyService { @Autowired private MyDao dao; public destroySession(String sessionId) { myDao.deleteMySessionById(sessionId); } } Best Regards, Ilja Pavkovic Am Mittwoch, 17. Februar 2010 13:24:11 schrieb Andreas Lüdtke: > Vineet, > > I'm now storing the session id in the user record. But now I have another > problem, because hibernate tells me now in sessionDestroy(): > > org.hibernate.HibernateException: No Hibernate Session bound to thread, and > configuration does not allow creation of non-transactional one here > > I'm using spring to inject my dao. I also tried to use the dao in my > HttpSessionListener which is configured in web.xml, but that prevents my > app from being started by Tomcat. > Next I did was to create a manual created hibernate session, but that > raised other problems like a missing hibernate.hbm.xml file and I don't > want to configure that manually... > > Does somebody see another way to access my user data, or am I doing > something stupid? > > Andreas > > > -Original Message- > > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > > Sent: Tuesday, February 16, 2010 2:15 PM > > To: users@wicket.apache.org; sam.lued...@t-online.de > > Subject: Re: best way to detect session termination > > > > can't you simply do that in > > webapplication.sessiondestroy(String sessionid), > > > > you can store the sessionid when user logs in and on sessiondestroyed > > > > ,search the user by this sessionid , > > and change whatever in user object and then persist it.. > > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > > > > wrote: > > > I studied the classes HttpSessionBindingListener and > > > AbstractHttpSessionStore > > > as you noted, but I think I'll still have no link between > > > > the SessionId > > > > > from > > > the HTTPSession and my own Session. Maybe I'm missing > > > > something or "I don't > > > > > see the wood among all the trees" as we say in Germany... > > > > > > Andreas > > > > > > > -Original Message- > > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > Sent: Monday, February 15, 2010 7:08 PM > > > > To: sam.lued...@t-online.de > > > > Cc: users@wicket.apache.org > > > > Subject: Re: best way to detect session termination > > > > > > > > You could use a HttpSessionBindingListener like Wicket > > > > does internally > > > > > > (see AbstractHttpSessionStore). Or as a hack store > > > > references to the > > > > > > session objects in the session listener. That's the easy fix, but > > > > doesn't scale if you need session replication (unless > > > > maybe you use > > > > > > e.g. Terracotta). > > > > > > > > Eelco > > > > > > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > > > > > > > > wrote: > > > > > Hi Eelco, > > > > > > > > > > thanks for the hint. Now I can detect the end of a session. > > > > > > > > Unfortunately I > > > > > > > > > can't access my own wicket session in that > > > > > > > > sessionDestroyed() method in order > > > > > > > > > to get the info about the connected user. I've got ther > > > > > > > > error message > > > > > > > > > "java.lang.IllegalStateException: you can only locate or > > > > > > > > create sessions in > > > > > > > > > the context of a request cycle". > > > > > > > > > > Do you know how I can achieve this? > > > > > > > > > > Andreas > > > > > > > > > >> -Original Message- > > > > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > >> Sent: Saturday, February 13, 2010 7:02 PM > > > > >> To: users@wicket.apache.org; sam.l
RE: best way to detect session termination
Vineet, thanks for the snippet. When I try your code, I get again an error message saying: org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here So, how can I bind the hibernate session to my thread? Or do I need to change the configuration? Andreas > -Original Message- > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > Sent: Wednesday, February 17, 2010 5:02 PM > To: users@wicket.apache.org; sam.lued...@t-online.de > Subject: Re: best way to detect session termination > > a small example, > WebApplicationContextUtils.getRequiredWebApplicationContext(ge > tServletContext()).getBean("name") > > On Wed, Feb 17, 2010 at 8:50 PM, vineet semwal > wrote: > > > > > quick solution to do by retrieving the bean from spring > applicationcontext > > in your webapplication, > > it will work but i am not sure how good the solution is . > > > > > > > > On Wed, Feb 17, 2010 at 5:54 PM, Andreas Lüdtke > wrote: > > > >> Vineet, > >> > >> I'm now storing the session id in the user record. But now > I have another > >> problem, because hibernate tells me now in sessionDestroy(): > >> > >> org.hibernate.HibernateException: No Hibernate Session > bound to thread, > >> and > >> configuration does not allow creation of non-transactional one here > >> > >> I'm using spring to inject my dao. I also tried to use the > dao in my > >> HttpSessionListener which is configured in web.xml, but > that prevents my > >> app > >> from being started by Tomcat. > >> Next I did was to create a manual created hibernate > session, but that > >> raised > >> other problems like a missing hibernate.hbm.xml file and I > don't want to > >> configure that manually... > >> > >> Does somebody see another way to access my user data, or am I doing > >> something > >> stupid? > >> > >> Andreas > >> > >> > >> > -Original Message- > >> > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > >> > Sent: Tuesday, February 16, 2010 2:15 PM > >> > To: users@wicket.apache.org; sam.lued...@t-online.de > >> > Subject: Re: best way to detect session termination > >> > > >> > can't you simply do that in > >> > webapplication.sessiondestroy(String sessionid), > >> > you can store the sessionid when user logs in and on > sessiondestroyed > >> > ,search the user by this sessionid , > >> > and change whatever in user object and then persist it.. > >> > > >> > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > >> > wrote: > >> > > >> > > I studied the classes HttpSessionBindingListener and > >> > > AbstractHttpSessionStore > >> > > as you noted, but I think I'll still have no link between > >> > the SessionId > >> > > from > >> > > the HTTPSession and my own Session. Maybe I'm missing > >> > something or "I don't > >> > > see the wood among all the trees" as we say in Germany... > >> > > > >> > > Andreas > >> > > > >> > > > -Original Message- > >> > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > >> > > > Sent: Monday, February 15, 2010 7:08 PM > >> > > > To: sam.lued...@t-online.de > >> > > > Cc: users@wicket.apache.org > >> > > > Subject: Re: best way to detect session termination > >> > > > > >> > > > You could use a HttpSessionBindingListener like Wicket > >> > does internally > >> > > > (see AbstractHttpSessionStore). Or as a hack store > >> > references to the > >> > > > session objects in the session listener. That's the > easy fix, but > >> > > > doesn't scale if you need session replication (unless > >> > maybe you use > >> > > > e.g. Terracotta). > >> > > > > >> > > > Eelco > >> > > > > >> > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > >> > > > wrote: > >> > > > > Hi Eelco, > >> > > > > > >> > > > > thanks for the hint. Now I can detect the end of a session.
RE: best way to detect session termination
Vineet, could you please give me a hint or a code snippet how to access that interface? I'm a spring beginner and a little bit lost at the moment. As I said, in my app the dao is injected and when the session is destroyed, the link to hibernate is lost. Andreas > -Original Message- > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > Sent: Wednesday, February 17, 2010 4:20 PM > To: users@wicket.apache.org; sam.lued...@t-online.de > Subject: Re: best way to detect session termination > > quick solution to do by retrieving the bean from spring > applicationcontext > in your webapplication, > it will work but i am not sure how good the solution is . > > > On Wed, Feb 17, 2010 at 5:54 PM, Andreas Lüdtke > wrote: > > > Vineet, > > > > I'm now storing the session id in the user record. But now > I have another > > problem, because hibernate tells me now in sessionDestroy(): > > > > org.hibernate.HibernateException: No Hibernate Session > bound to thread, and > > configuration does not allow creation of non-transactional one here > > > > I'm using spring to inject my dao. I also tried to use the dao in my > > HttpSessionListener which is configured in web.xml, but > that prevents my > > app > > from being started by Tomcat. > > Next I did was to create a manual created hibernate > session, but that > > raised > > other problems like a missing hibernate.hbm.xml file and I > don't want to > > configure that manually... > > > > Does somebody see another way to access my user data, or am I doing > > something > > stupid? > > > > Andreas > > > > > > > -Original Message- > > > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > > > Sent: Tuesday, February 16, 2010 2:15 PM > > > To: users@wicket.apache.org; sam.lued...@t-online.de > > > Subject: Re: best way to detect session termination > > > > > > can't you simply do that in > > > webapplication.sessiondestroy(String sessionid), > > > you can store the sessionid when user logs in and on > sessiondestroyed > > > ,search the user by this sessionid , > > > and change whatever in user object and then persist it.. > > > > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > > > wrote: > > > > > > > I studied the classes HttpSessionBindingListener and > > > > AbstractHttpSessionStore > > > > as you noted, but I think I'll still have no link between > > > the SessionId > > > > from > > > > the HTTPSession and my own Session. Maybe I'm missing > > > something or "I don't > > > > see the wood among all the trees" as we say in Germany... > > > > > > > > Andreas > > > > > > > > > -Original Message- > > > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > > Sent: Monday, February 15, 2010 7:08 PM > > > > > To: sam.lued...@t-online.de > > > > > Cc: users@wicket.apache.org > > > > > Subject: Re: best way to detect session termination > > > > > > > > > > You could use a HttpSessionBindingListener like Wicket > > > does internally > > > > > (see AbstractHttpSessionStore). Or as a hack store > > > references to the > > > > > session objects in the session listener. That's the > easy fix, but > > > > > doesn't scale if you need session replication (unless > > > maybe you use > > > > > e.g. Terracotta). > > > > > > > > > > Eelco > > > > > > > > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > > > > > wrote: > > > > > > Hi Eelco, > > > > > > > > > > > > thanks for the hint. Now I can detect the end of a session. > > > > > Unfortunately I > > > > > > can't access my own wicket session in that > > > > > sessionDestroyed() method in order > > > > > > to get the info about the connected user. I've got ther > > > > > error message > > > > > > "java.lang.IllegalStateException: you can only locate or > > > > > create sessions in > > > > > > the context of a request cycle". > > > > > > > > > > > > Do you know how I can
Re: best way to detect session termination
a small example, WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext()).getBean("name") On Wed, Feb 17, 2010 at 8:50 PM, vineet semwal wrote: > > quick solution to do by retrieving the bean from spring applicationcontext > in your webapplication, > it will work but i am not sure how good the solution is . > > > > On Wed, Feb 17, 2010 at 5:54 PM, Andreas Lüdtke > wrote: > >> Vineet, >> >> I'm now storing the session id in the user record. But now I have another >> problem, because hibernate tells me now in sessionDestroy(): >> >> org.hibernate.HibernateException: No Hibernate Session bound to thread, >> and >> configuration does not allow creation of non-transactional one here >> >> I'm using spring to inject my dao. I also tried to use the dao in my >> HttpSessionListener which is configured in web.xml, but that prevents my >> app >> from being started by Tomcat. >> Next I did was to create a manual created hibernate session, but that >> raised >> other problems like a missing hibernate.hbm.xml file and I don't want to >> configure that manually... >> >> Does somebody see another way to access my user data, or am I doing >> something >> stupid? >> >> Andreas >> >> >> > -----Original Message----- >> > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] >> > Sent: Tuesday, February 16, 2010 2:15 PM >> > To: users@wicket.apache.org; sam.lued...@t-online.de >> > Subject: Re: best way to detect session termination >> > >> > can't you simply do that in >> > webapplication.sessiondestroy(String sessionid), >> > you can store the sessionid when user logs in and on sessiondestroyed >> > ,search the user by this sessionid , >> > and change whatever in user object and then persist it.. >> > >> > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke >> > wrote: >> > >> > > I studied the classes HttpSessionBindingListener and >> > > AbstractHttpSessionStore >> > > as you noted, but I think I'll still have no link between >> > the SessionId >> > > from >> > > the HTTPSession and my own Session. Maybe I'm missing >> > something or "I don't >> > > see the wood among all the trees" as we say in Germany... >> > > >> > > Andreas >> > > >> > > > -Original Message- >> > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> > > > Sent: Monday, February 15, 2010 7:08 PM >> > > > To: sam.lued...@t-online.de >> > > > Cc: users@wicket.apache.org >> > > > Subject: Re: best way to detect session termination >> > > > >> > > > You could use a HttpSessionBindingListener like Wicket >> > does internally >> > > > (see AbstractHttpSessionStore). Or as a hack store >> > references to the >> > > > session objects in the session listener. That's the easy fix, but >> > > > doesn't scale if you need session replication (unless >> > maybe you use >> > > > e.g. Terracotta). >> > > > >> > > > Eelco >> > > > >> > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke >> > > > wrote: >> > > > > Hi Eelco, >> > > > > >> > > > > thanks for the hint. Now I can detect the end of a session. >> > > > Unfortunately I >> > > > > can't access my own wicket session in that >> > > > sessionDestroyed() method in order >> > > > > to get the info about the connected user. I've got ther >> > > > error message >> > > > > "java.lang.IllegalStateException: you can only locate or >> > > > create sessions in >> > > > > the context of a request cycle". >> > > > > >> > > > > Do you know how I can achieve this? >> > > > > >> > > > > Andreas >> > > > > >> > > > >> -Original Message- >> > > > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> > > > >> Sent: Saturday, February 13, 2010 7:02 PM >> > > > >> To: users@wicket.apache.org; sam.lued...@t-online.de >> > > > >> Subject: Re: best way to detect session termination >> > > >
Re: best way to detect session termination
quick solution to do by retrieving the bean from spring applicationcontext in your webapplication, it will work but i am not sure how good the solution is . On Wed, Feb 17, 2010 at 5:54 PM, Andreas Lüdtke wrote: > Vineet, > > I'm now storing the session id in the user record. But now I have another > problem, because hibernate tells me now in sessionDestroy(): > > org.hibernate.HibernateException: No Hibernate Session bound to thread, and > configuration does not allow creation of non-transactional one here > > I'm using spring to inject my dao. I also tried to use the dao in my > HttpSessionListener which is configured in web.xml, but that prevents my > app > from being started by Tomcat. > Next I did was to create a manual created hibernate session, but that > raised > other problems like a missing hibernate.hbm.xml file and I don't want to > configure that manually... > > Does somebody see another way to access my user data, or am I doing > something > stupid? > > Andreas > > > > -Original Message- > > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > > Sent: Tuesday, February 16, 2010 2:15 PM > > To: users@wicket.apache.org; sam.lued...@t-online.de > > Subject: Re: best way to detect session termination > > > > can't you simply do that in > > webapplication.sessiondestroy(String sessionid), > > you can store the sessionid when user logs in and on sessiondestroyed > > ,search the user by this sessionid , > > and change whatever in user object and then persist it.. > > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > > wrote: > > > > > I studied the classes HttpSessionBindingListener and > > > AbstractHttpSessionStore > > > as you noted, but I think I'll still have no link between > > the SessionId > > > from > > > the HTTPSession and my own Session. Maybe I'm missing > > something or "I don't > > > see the wood among all the trees" as we say in Germany... > > > > > > Andreas > > > > > > > -Original Message- > > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > Sent: Monday, February 15, 2010 7:08 PM > > > > To: sam.lued...@t-online.de > > > > Cc: users@wicket.apache.org > > > > Subject: Re: best way to detect session termination > > > > > > > > You could use a HttpSessionBindingListener like Wicket > > does internally > > > > (see AbstractHttpSessionStore). Or as a hack store > > references to the > > > > session objects in the session listener. That's the easy fix, but > > > > doesn't scale if you need session replication (unless > > maybe you use > > > > e.g. Terracotta). > > > > > > > > Eelco > > > > > > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > > > > wrote: > > > > > Hi Eelco, > > > > > > > > > > thanks for the hint. Now I can detect the end of a session. > > > > Unfortunately I > > > > > can't access my own wicket session in that > > > > sessionDestroyed() method in order > > > > > to get the info about the connected user. I've got ther > > > > error message > > > > > "java.lang.IllegalStateException: you can only locate or > > > > create sessions in > > > > > the context of a request cycle". > > > > > > > > > > Do you know how I can achieve this? > > > > > > > > > > Andreas > > > > > > > > > >> -Original Message- > > > > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > > >> Sent: Saturday, February 13, 2010 7:02 PM > > > > >> To: users@wicket.apache.org; sam.lued...@t-online.de > > > > >> Subject: Re: best way to detect session termination > > > > >> > > > > >> > > http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 > > > > >> > > > > >> Eelco > > > > >> > > > > >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke > > > > >> wrote: > > > > >> > I would like to detect the termination of the > > session to set the > > > > >> > "lastAccesTime" in the user profile. This should also > > > > >> happen if the
RE: best way to detect session termination
Vineet, I'm now storing the session id in the user record. But now I have another problem, because hibernate tells me now in sessionDestroy(): org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here I'm using spring to inject my dao. I also tried to use the dao in my HttpSessionListener which is configured in web.xml, but that prevents my app from being started by Tomcat. Next I did was to create a manual created hibernate session, but that raised other problems like a missing hibernate.hbm.xml file and I don't want to configure that manually... Does somebody see another way to access my user data, or am I doing something stupid? Andreas > -Original Message- > From: vineet semwal [mailto:vineetsemwal1...@gmail.com] > Sent: Tuesday, February 16, 2010 2:15 PM > To: users@wicket.apache.org; sam.lued...@t-online.de > Subject: Re: best way to detect session termination > > can't you simply do that in > webapplication.sessiondestroy(String sessionid), > you can store the sessionid when user logs in and on sessiondestroyed > ,search the user by this sessionid , > and change whatever in user object and then persist it.. > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > wrote: > > > I studied the classes HttpSessionBindingListener and > > AbstractHttpSessionStore > > as you noted, but I think I'll still have no link between > the SessionId > > from > > the HTTPSession and my own Session. Maybe I'm missing > something or "I don't > > see the wood among all the trees" as we say in Germany... > > > > Andreas > > > > > -Original Message- > > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > Sent: Monday, February 15, 2010 7:08 PM > > > To: sam.lued...@t-online.de > > > Cc: users@wicket.apache.org > > > Subject: Re: best way to detect session termination > > > > > > You could use a HttpSessionBindingListener like Wicket > does internally > > > (see AbstractHttpSessionStore). Or as a hack store > references to the > > > session objects in the session listener. That's the easy fix, but > > > doesn't scale if you need session replication (unless > maybe you use > > > e.g. Terracotta). > > > > > > Eelco > > > > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > > > wrote: > > > > Hi Eelco, > > > > > > > > thanks for the hint. Now I can detect the end of a session. > > > Unfortunately I > > > > can't access my own wicket session in that > > > sessionDestroyed() method in order > > > > to get the info about the connected user. I've got ther > > > error message > > > > "java.lang.IllegalStateException: you can only locate or > > > create sessions in > > > > the context of a request cycle". > > > > > > > > Do you know how I can achieve this? > > > > > > > > Andreas > > > > > > > >> -Original Message- > > > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > > >> Sent: Saturday, February 13, 2010 7:02 PM > > > >> To: users@wicket.apache.org; sam.lued...@t-online.de > > > >> Subject: Re: best way to detect session termination > > > >> > > > >> > http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 > > > >> > > > >> Eelco > > > >> > > > >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke > > > >> wrote: > > > >> > I would like to detect the termination of the > session to set the > > > >> > "lastAccesTime" in the user profile. This should also > > > >> happen if the session > > > >> > times out. > > > >> > > > > >> > I read in archive about a HttpSessionListener that should > > > >> do the trick. > > > >> > Unfortunately I can't find a place to install it. > > > >> > > > > >> > Thanks > > > >> > > > > >> > Andreas > > > >> > > > > >> > > > > >> > > > > >> > > > > - > > > >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > > >> > For additional commands, e-mail: users-h...@wicket.apache.org > > > >> > > > > >> > > > > >> > > > > > > > > > > > > > > > - > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > > > > > > > - > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > -- > regards, > Vineet Semwal > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: best way to detect session termination
You can maintain a map somewhere on your own to do that. On Tue, Feb 16, 2010 at 7:53 AM, Andreas Lüdtke wrote: > I studied the classes HttpSessionBindingListener and AbstractHttpSessionStore > as you noted, but I think I'll still have no link between the SessionId from > the HTTPSession and my own Session. Maybe I'm missing something or "I don't > see the wood among all the trees" as we say in Germany... > > Andreas > >> -Original Message- >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> Sent: Monday, February 15, 2010 7:08 PM >> To: sam.lued...@t-online.de >> Cc: users@wicket.apache.org >> Subject: Re: best way to detect session termination >> >> You could use a HttpSessionBindingListener like Wicket does internally >> (see AbstractHttpSessionStore). Or as a hack store references to the >> session objects in the session listener. That's the easy fix, but >> doesn't scale if you need session replication (unless maybe you use >> e.g. Terracotta). >> >> Eelco >> >> On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke >> wrote: >> > Hi Eelco, >> > >> > thanks for the hint. Now I can detect the end of a session. >> Unfortunately I >> > can't access my own wicket session in that >> sessionDestroyed() method in order >> > to get the info about the connected user. I've got ther >> error message >> > "java.lang.IllegalStateException: you can only locate or >> create sessions in >> > the context of a request cycle". >> > >> > Do you know how I can achieve this? >> > >> > Andreas >> > >> >> -Original Message- >> >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> >> Sent: Saturday, February 13, 2010 7:02 PM >> >> To: users@wicket.apache.org; sam.lued...@t-online.de >> >> Subject: Re: best way to detect session termination >> >> >> >> http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 >> >> >> >> Eelco >> >> >> >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke >> >> wrote: >> >> > I would like to detect the termination of the session to set the >> >> > "lastAccesTime" in the user profile. This should also >> >> happen if the session >> >> > times out. >> >> > >> >> > I read in archive about a HttpSessionListener that should >> >> do the trick. >> >> > Unfortunately I can't find a place to install it. >> >> > >> >> > Thanks >> >> > >> >> > Andreas >> >> > >> >> > >> >> > >> >> >> - >> >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> >> > For additional commands, e-mail: users-h...@wicket.apache.org >> >> > >> >> > >> >> >> > >> > >> >> - >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> > > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: best way to detect session termination
i think i didn't use my words correctly :( with "you can store the sessionid when user logs in" i mean persist user object with sessionid when the user signed in ... On Tue, Feb 16, 2010 at 6:45 PM, vineet semwal wrote: > can't you simply do that in webapplication.sessiondestroy(String > sessionid), > you can store the sessionid when user logs in and on sessiondestroyed > ,search the user by this sessionid , > and change whatever in user object and then persist it.. > > > On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke > wrote: > >> I studied the classes HttpSessionBindingListener and >> AbstractHttpSessionStore >> as you noted, but I think I'll still have no link between the SessionId >> from >> the HTTPSession and my own Session. Maybe I'm missing something or "I >> don't >> see the wood among all the trees" as we say in Germany... >> >> Andreas >> >> > -Original Message- >> > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> > Sent: Monday, February 15, 2010 7:08 PM >> > To: sam.lued...@t-online.de >> > Cc: users@wicket.apache.org >> > Subject: Re: best way to detect session termination >> > >> > You could use a HttpSessionBindingListener like Wicket does internally >> > (see AbstractHttpSessionStore). Or as a hack store references to the >> > session objects in the session listener. That's the easy fix, but >> > doesn't scale if you need session replication (unless maybe you use >> > e.g. Terracotta). >> > >> > Eelco >> > >> > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke >> > wrote: >> > > Hi Eelco, >> > > >> > > thanks for the hint. Now I can detect the end of a session. >> > Unfortunately I >> > > can't access my own wicket session in that >> > sessionDestroyed() method in order >> > > to get the info about the connected user. I've got ther >> > error message >> > > "java.lang.IllegalStateException: you can only locate or >> > create sessions in >> > > the context of a request cycle". >> > > >> > > Do you know how I can achieve this? >> > > >> > > Andreas >> > > >> > >> -Original Message- >> > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> > >> Sent: Saturday, February 13, 2010 7:02 PM >> > >> To: users@wicket.apache.org; sam.lued...@t-online.de >> > >> Subject: Re: best way to detect session termination >> > >> >> > >> http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 >> > >> >> > >> Eelco >> > >> >> > >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke >> > >> wrote: >> > >> > I would like to detect the termination of the session to set the >> > >> > "lastAccesTime" in the user profile. This should also >> > >> happen if the session >> > >> > times out. >> > >> > >> > >> > I read in archive about a HttpSessionListener that should >> > >> do the trick. >> > >> > Unfortunately I can't find a place to install it. >> > >> > >> > >> > Thanks >> > >> > >> > >> > Andreas >> > >> > >> > >> > >> > >> > >> > >> >> > - >> > >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > >> > For additional commands, e-mail: users-h...@wicket.apache.org >> > >> > >> > >> > >> > >> >> > > >> > > >> > >> > - >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > For additional commands, e-mail: users-h...@wicket.apache.org >> > >> > >> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> For additional commands, e-mail: users-h...@wicket.apache.org >> >> > > > -- > regards, > Vineet Semwal > -- regards, Vineet Semwal
Re: best way to detect session termination
can't you simply do that in webapplication.sessiondestroy(String sessionid), you can store the sessionid when user logs in and on sessiondestroyed ,search the user by this sessionid , and change whatever in user object and then persist it.. On Tue, Feb 16, 2010 at 6:23 PM, Andreas Lüdtke wrote: > I studied the classes HttpSessionBindingListener and > AbstractHttpSessionStore > as you noted, but I think I'll still have no link between the SessionId > from > the HTTPSession and my own Session. Maybe I'm missing something or "I don't > see the wood among all the trees" as we say in Germany... > > Andreas > > > -Original Message- > > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > Sent: Monday, February 15, 2010 7:08 PM > > To: sam.lued...@t-online.de > > Cc: users@wicket.apache.org > > Subject: Re: best way to detect session termination > > > > You could use a HttpSessionBindingListener like Wicket does internally > > (see AbstractHttpSessionStore). Or as a hack store references to the > > session objects in the session listener. That's the easy fix, but > > doesn't scale if you need session replication (unless maybe you use > > e.g. Terracotta). > > > > Eelco > > > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > > wrote: > > > Hi Eelco, > > > > > > thanks for the hint. Now I can detect the end of a session. > > Unfortunately I > > > can't access my own wicket session in that > > sessionDestroyed() method in order > > > to get the info about the connected user. I've got ther > > error message > > > "java.lang.IllegalStateException: you can only locate or > > create sessions in > > > the context of a request cycle". > > > > > > Do you know how I can achieve this? > > > > > > Andreas > > > > > >> -Original Message- > > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > > >> Sent: Saturday, February 13, 2010 7:02 PM > > >> To: users@wicket.apache.org; sam.lued...@t-online.de > > >> Subject: Re: best way to detect session termination > > >> > > >> http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 > > >> > > >> Eelco > > >> > > >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke > > >> wrote: > > >> > I would like to detect the termination of the session to set the > > >> > "lastAccesTime" in the user profile. This should also > > >> happen if the session > > >> > times out. > > >> > > > >> > I read in archive about a HttpSessionListener that should > > >> do the trick. > > >> > Unfortunately I can't find a place to install it. > > >> > > > >> > Thanks > > >> > > > >> > Andreas > > >> > > > >> > > > >> > > > >> > > - > > >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > >> > For additional commands, e-mail: users-h...@wicket.apache.org > > >> > > > >> > > > >> > > > > > > > > > > - > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > -- regards, Vineet Semwal
RE: best way to detect session termination
I studied the classes HttpSessionBindingListener and AbstractHttpSessionStore as you noted, but I think I'll still have no link between the SessionId from the HTTPSession and my own Session. Maybe I'm missing something or "I don't see the wood among all the trees" as we say in Germany... Andreas > -Original Message- > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > Sent: Monday, February 15, 2010 7:08 PM > To: sam.lued...@t-online.de > Cc: users@wicket.apache.org > Subject: Re: best way to detect session termination > > You could use a HttpSessionBindingListener like Wicket does internally > (see AbstractHttpSessionStore). Or as a hack store references to the > session objects in the session listener. That's the easy fix, but > doesn't scale if you need session replication (unless maybe you use > e.g. Terracotta). > > Eelco > > On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke > wrote: > > Hi Eelco, > > > > thanks for the hint. Now I can detect the end of a session. > Unfortunately I > > can't access my own wicket session in that > sessionDestroyed() method in order > > to get the info about the connected user. I've got ther > error message > > "java.lang.IllegalStateException: you can only locate or > create sessions in > > the context of a request cycle". > > > > Do you know how I can achieve this? > > > > Andreas > > > >> -Original Message----- > >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > >> Sent: Saturday, February 13, 2010 7:02 PM > >> To: users@wicket.apache.org; sam.lued...@t-online.de > >> Subject: Re: best way to detect session termination > >> > >> http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 > >> > >> Eelco > >> > >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke > >> wrote: > >> > I would like to detect the termination of the session to set the > >> > "lastAccesTime" in the user profile. This should also > >> happen if the session > >> > times out. > >> > > >> > I read in archive about a HttpSessionListener that should > >> do the trick. > >> > Unfortunately I can't find a place to install it. > >> > > >> > Thanks > >> > > >> > Andreas > >> > > >> > > >> > > >> > - > >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > >> > For additional commands, e-mail: users-h...@wicket.apache.org > >> > > >> > > >> > > > > > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: best way to detect session termination
You could use a HttpSessionBindingListener like Wicket does internally (see AbstractHttpSessionStore). Or as a hack store references to the session objects in the session listener. That's the easy fix, but doesn't scale if you need session replication (unless maybe you use e.g. Terracotta). Eelco On Sun, Feb 14, 2010 at 4:36 AM, Andreas Lüdtke wrote: > Hi Eelco, > > thanks for the hint. Now I can detect the end of a session. Unfortunately I > can't access my own wicket session in that sessionDestroyed() method in order > to get the info about the connected user. I've got ther error message > "java.lang.IllegalStateException: you can only locate or create sessions in > the context of a request cycle". > > Do you know how I can achieve this? > > Andreas > >> -Original Message- >> From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] >> Sent: Saturday, February 13, 2010 7:02 PM >> To: users@wicket.apache.org; sam.lued...@t-online.de >> Subject: Re: best way to detect session termination >> >> http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 >> >> Eelco >> >> On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke >> wrote: >> > I would like to detect the termination of the session to set the >> > "lastAccesTime" in the user profile. This should also >> happen if the session >> > times out. >> > >> > I read in archive about a HttpSessionListener that should >> do the trick. >> > Unfortunately I can't find a place to install it. >> > >> > Thanks >> > >> > Andreas >> > >> > >> > >> - >> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >> > For additional commands, e-mail: users-h...@wicket.apache.org >> > >> > >> > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
RE: best way to detect session termination
Hi Eelco, thanks for the hint. Now I can detect the end of a session. Unfortunately I can't access my own wicket session in that sessionDestroyed() method in order to get the info about the connected user. I've got ther error message "java.lang.IllegalStateException: you can only locate or create sessions in the context of a request cycle". Do you know how I can achieve this? Andreas > -Original Message- > From: Eelco Hillenius [mailto:eelco.hillen...@gmail.com] > Sent: Saturday, February 13, 2010 7:02 PM > To: users@wicket.apache.org; sam.lued...@t-online.de > Subject: Re: best way to detect session termination > > http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 > > Eelco > > On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke > wrote: > > I would like to detect the termination of the session to set the > > "lastAccesTime" in the user profile. This should also > happen if the session > > times out. > > > > I read in archive about a HttpSessionListener that should > do the trick. > > Unfortunately I can't find a place to install it. > > > > Thanks > > > > Andreas > > > > > > > - > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: best way to detect session termination
http://www.xyzws.com/Servletfaq/when-do-i-use-httpsessionlistener/7 Eelco On Sat, Feb 13, 2010 at 8:38 AM, Andreas Lüdtke wrote: > I would like to detect the termination of the session to set the > "lastAccesTime" in the user profile. This should also happen if the session > times out. > > I read in archive about a HttpSessionListener that should do the trick. > Unfortunately I can't find a place to install it. > > Thanks > > Andreas > > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org