org.apache.catalina.ServerFactory.getServer() 在 Tomcat 7 中等效 [英] org.apache.catalina.ServerFactory.getServer() equivalent in Tomcat 7

查看:40
本文介绍了org.apache.catalina.ServerFactory.getServer() 在 Tomcat 7 中等效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Tomcat 7 中 org.apache.catalina.ServerFactory.getServer() 的等价物是什么,或者检索 org.apache.catalina.Session 的最佳方式是什么?代码>实例?

What is the equivalent of org.apache.catalina.ServerFactory.getServer() in Tomcat 7 or what would be the best way to retrieve org.apache.catalina.Session instances ?

以下是用于 Tomcat 6.0 的示例代码:

Here is a sample code that used to work on Tomcat 6.0:

public List<org.apache.catalina.Session> findActiveSessions() throws ServiceException {
    StandardEngine engine = (StandardEngine) ServerFactory.getServer().findService("Catalina").getContainer();
    StandardContext  context = (StandardContext) engine.findChild(engine.getDefaultHost())
        .findChild(ServletActionContext.getServletContext().getContextPath()); 
    List<org.apache.catalina.Session> list = new ArrayList<org.apache.catalina.Session>();
    for (org.apache.catalina.Session session : context.getManager().findSessions()) {
        list.add(session);
    }
    return list;
}

推荐答案

您可以通过它的管理注册查询..

You can look it up via its management registration..

import javax.management.*;
import org.apache.catalina.Server;

MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
ObjectName name = new ObjectName("Catalina", "type", "Server");
Server server = (Server) mBeanServer.getAttribute(name, "managedResource");

显然,该代码没有错误检查,但功能强大.

Obviously that code is devoid of error checking but is functional.

这篇关于org.apache.catalina.ServerFactory.getServer() 在 Tomcat 7 中等效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆