Hi everyone, When a user logs out I want to remove it from my online_table. This can happen in two ways: 1. The user clicks LOGOUT link and I remove him from the online_table and invalidate his session. 2. The users simply closes the browser, in which case I am unaware that he left and the session will be invalidated by the container after a certain interval.
In case 2 however, when the container disposes of the session I want to capture it and based on it's attribute, remove the user from the online_table. I'm using Tomcat so I do this by implementing the HttpSessionListener interface in one of my components. This component is a Layout component that I use to wrap around my pages. When the container kills the session it correctly invokes my method: @Inject private OnlineUsersControler onlineUsersControler; @Override public void sessionDestroyed(HttpSessionEvent arg0) { onlineUsersControler.removeUser(//get user credentials here); -> it throws NULL POINTER because the onlineUserControler has not been instantiates by the @Inject annotation } As you can see the OnlineUserControler is a Tap5 service. It looks like when Tomcat invokes my sessionDestroy method, Tap5 does not also fulfill the @Inject contract. I guess it happens because the page get's called by Tomcat and not Tap. Is there a way for me to force Tap to inject my service? Any other work around idea is welcomed. I have even went so far as to putting a finalize method in the User object to be removed and calling System.gc() on sessionDestroy ( i know ridiculous ). Thank you, Bogdan. -- View this message in context: http://tapestry.1045711.n5.nabble.com/HttpSessionListener-interface-implementation-by-Tapestry5-component-tp5572413p5572413.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org