Tomcat 7 中的 org.apache.catalina.ServerFactory.getServer() 等效项

发布于 2024-11-26 11:03:55 字数 791 浏览 1 评论 0原文

Tomcat 7 中 org.apache.catalina.ServerFactory.getServer() 的等效项是什么,或者检索 org.apache.catalina.Session 实例的最佳方法是什么?

以下是用于 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;
}

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 ?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜尕妞 2024-12-03 11:03:56

您可以通过其管理注册来查找它。

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

显然,该代码没有错误检查,但功能正常。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文