Org.apache.catalina.ServerFactory.getServer() эквивалент в Tomcat 7
Что такое эквивалент org.apache.catalina.ServerFactory.getServer()
в Tomcat 7 или что было бы лучшим способом для извлечения экземпляров 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;
}
Ответы
Ответ 1
Вы можете посмотреть его через свою регистрацию управления.
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");
Очевидно, что код лишен проверки на ошибку, но является функциональным.