Очень простой подход был бы
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 (или на вашей локальной установки http://localhost:8080/docs/monitoring.html) и в FAQ - Monitoring
редактировать Чтобы найти активные сеансы приложения соответствующим образом изменяют пример. В приведенных ниже двух строках будут показаны активные сеансы, если вы получите доступ к SessionExample из установки по умолчанию Tomcat.
ObjectName name = new ObjectName(
"Catalina:type=Manager,context=/examples,host=localhost");
System.out.println(conn.getAttribute(name, "activeSessions"));
В каком коде у вас есть проблема? С помощью [JMX] (http://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html) или с помощью поиска [имена MBean] (https://tomcat.apache.org /tomcat-7.0-doc/funcspecs/mbean-names.html). – SubOptimal
Я не знаю, с чего начать или как начать. Поэтому, пожалуйста, помогите мне написать приложение Java для чтения активных сеансов из tomcat. Чему я должен научиться писать приложение. –
Привет, и добро пожаловать к этому. Спросить о учебниках не по теме. Поскольку у вас нет какого-либо кода или реальной проблемы, чтобы обсудить здесь, я голосую, чтобы закрыть этот вопрос. – Marcinek