如何使用 JMX 代码编写 java 应用程序以获取 tomcat 7 中的活动会话?

How can I write a java application using JMX code to get the active session's in tomcat 7?

我正在使用 apache tomcat 7 到 运行 我的网络应用程序。我需要通过 运行 宁 java 应用程序了解活动会话数。

我了解到可以使用 JMX。我使用 jconsole 得到了计数。但是使用 java 应用程序我需要得到它。

任何人都可以帮助我启动它。

一个非常简单的方法是

String serviceUrl = "service:jmx:rmi:///jndi/rmi://localhost:9001/jmxrmi";
JMXServiceURL jmxServiceUrl = new JMXServiceURL(serviceUrl);
JMXConnector jmxc = JMXConnectorFactory.connect(jmxServiceUrl, null);
MBeanServerConnection conn = jmxc.getMBeanServerConnection();
ObjectName name = new ObjectName("Catalina:type=ProtocolHandler,port=8080");
System.out.println(conn.getAttribute(name, "connectionCount"));

要了解有关 Tomcat 监控的更多信息,请查看 Monitoring and Managing Tomcat (or on your local installation http://localhost:8080/docs/monitoring.html) and in the FAQ - Monitoring

编辑 要查找应用程序的活动会话,请相应地修改示例。如果您从默认 Tomcat 安装访问 SessionExample,下面两行将显示活动会话。

ObjectName name = new ObjectName(
    "Catalina:type=Manager,context=/examples,host=localhost");
System.out.println(conn.getAttribute(name, "activeSessions"));