Reputation: 9
How do I get the list of active users logged in using session
.
I have tried session.getOpenSessions()
but the value is null
.
This one I need it for my web socket chat program...
Pls help me.
Upvotes: 1
Views: 3222
Reputation: 517
To get a session list within tomcat
import javax.management.remote.*;
import org.apache.catalina.*;
MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server tomcatServer = (org.apache.catalina.Server) mBeanServer.getAttribute(name, "managedResource");
Service service = tomcatServer.findService("Catalina");
Engine engine = (Engine) service.getContainer();
Host host = (Host) engine.findChild(engine.getDefaultHost());
Context context = (Context) host.findChild("");
StandardManager manager = (StandardManager) context.getManager();
Session[] sessions=manager.findSessions();
Upvotes: 1
Reputation: 2058
You should use JMX (Java Managemnet eXtension) like this :
jmxObjectName: Catalina:host=localhost,path=/,type=Manager
jmxAttributeName: activeSessions
You can use jconsole to access this data. To get jmx running see http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html
Upvotes: 0