如何获取tomcat中的活动用户列表

时间:2016-05-30 15:41:44

标签: java

如何使用session获取登录的活跃用户列表。

我已尝试session.getOpenSessions(),但值为null

这个我需要它用于我的网络套接字聊天程序......

请帮助我。

2 个答案:

答案 0 :(得分:0)

您应该使用JMX(Java Managemnet eXtension),如下所示:

jmxObjectName:    Catalina:host=localhost,path=/,type=Manager
jmxAttributeName: activeSessions

您可以使用jconsole访问此数据。要让jmx运行,请参阅http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

答案 1 :(得分:0)

要在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();