gpt4 book ai didi

java - Tomcat 中的 Activity session 数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:41 25 4
gpt4 key购买 nike

我的 web 服务 jar 文件部署在我的 tomcat 服务器的 webapps\nyx\WEB-INF\services 下。现在,我试图在 Web 服务方法中使用以下代码来获取 Activity session 。

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = new ObjectName("Catalina:type=Manager,context=/nyx/services,host=localhost");
Object activeSessions =mBeanServer.getAttribute(objectName,"activeSessions");

但这给了我Instance not found异常。
有人可以帮我确定 context 属性的值吗?

最佳答案

尝试引用这个SO question ,阅读您的代码,我认为首先尝试使用 JMX(Java Management eXtension)

像这样:

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");
}

编辑

如果您需要在本地 检索 session 数,您的代码应该没问题,请尝试使用您的代码,但在运行时获取上下文。覆盖初始化方法:

@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");

关于java - Tomcat 中的 Activity session 数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54251609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com