什么是Tomcat7中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;
}
发布于 2011-11-01 23:26:11
你可以通过它的管理注册来查询它。
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");
显然,这段代码没有错误检查,但却是有功能的。
https://stackoverflow.com/questions/6833947
复制相似问题