Tomcat中的活动会话数

时间:2019-01-18 10:04:03

标签: java jmx mbeans yaxis tomcat8.5

我将我的Web服务jar文件部署在tomcat服务器中的const selectedMonth = browser.element('//div[starts-with(@class, "calendarBody-module__calendarTitle") and contains(., "February")]'); 下。现在,我尝试使用Web服务方法中的以下代码获取活动会话。

<div data-locator-id="CalendarMonth-c6adb897-2aa5-4487-9fab-ab71fe6bf852" class="calendarBody-module__calendarTitle--3P6U5">February 2019</div>

但这给了我找不到实例异常。
有人可以帮助我提供context属性的值吗?

1 个答案:

答案 0 :(得分:0)

尝试参考此SO question,首先阅读您的代码,我认为是尝试使用JMX(Java管理扩展)

类似这样的东西:

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
try(JMXConnector jmxc = JMXConnectorFactory.connect(url)) {
  MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
  ObjectName mbeanName = new ObjectName("Catalina:type=Manager,context=/,host=localhost");
  Object value = mbsc.getAttribute(mbeanName, "activeSessions");
}

编辑

如果您需要在本地获取会话的数量 ,请尝试使用代码,但在运行时获取上下文。 覆盖init方法:

@Override
public void init(final ServletConfig config) throws ServletException {
    context = config.getServletContext().getContextPath();
}

然后将其作为ObjectName参数传递:

ObjectName objectName = new ObjectName("Catalina:type=Manager,context="+context+",host=localhost");