Java wicket中活动会话的列表

Java wicket中活动会话的列表,java,tomcat,wicket,Java,Tomcat,Wicket,我需要获取活动wicket会话的列表。现在,我将所有新会话保存在重写方法newSession()中,当会话失效时,此会话被删除。但是这种方法有很多问题。我对这种方法的理解是非常粗鲁的,如果你知道另一种方法,我将不胜感激。(我使用wicket v1.5.4和tomcat v7.0.25) 更新 谢谢你们的回答,但我需要得到WICKET会话(WebSession)的列表。我添加了HttpSessionListener,其中包含WebSessions和HttpSessions的静态映射(带有同步)。这

我需要获取活动wicket会话的列表。现在,我将所有新会话保存在重写方法newSession()中,当会话失效时,此会话被删除。但是这种方法有很多问题。我对这种方法的理解是非常粗鲁的,如果你知道另一种方法,我将不胜感激。(我使用wicket v1.5.4和tomcat v7.0.25)

更新


谢谢你们的回答,但我需要得到WICKET会话(WebSession)的列表。我添加了HttpSessionListener,其中包含WebSessions和HttpSessions的静态映射(带有同步)。这种方式比我的好,没有老问题,但看起来也像黑客:(.你知道如何获取wicket会话列表吗?

用一个简单的侦听器来代替,像这样的方式可以接受吗

public class SessionCounterListener implements HttpSessionListener {

  private static int totalActiveSessions;

  public static int getTotalActiveSession(){
    return totalActiveSessions;
  }

  @Override
  public void sessionCreated(HttpSessionEvent event) {
    totalActiveSessions++;
 }

  @Override
  public void sessionDestroyed(HttpSessionEvent event) {
    totalActiveSessions--;
  } 
}


<web-app ...>
    <listener>
    <listener-class>SessionCounterListener</listener-class>
</listener>
</web-app>
公共类SessionCounterListener实现HttpSessionListener{
私有静态会话;
公共静态int getTotalActiveSession(){
返回所有活动会话;
}
@凌驾
已创建公共无效会话(HttpSessionEvent事件){
totalActiveSessions++;
}
@凌驾
public void sessionDestroyed(HttpSessionEvent事件){
总活动会话--;
} 
}
会话计数器

《Wicket in action》一书中还有一个例子,另一个解决方案是使用JMX。如果您浏览到:

Catalina:type=Manager,context=/your_war_context,host=localhost

在操作下,您将找到
listSessionIds()
方法。

您需要该列表用于监视目的吗?如果需要,那么一些工具可以提供帮助:@BorisPavlović部分正确。这是监视页面的需要,但我使用自己的WebSession实现,不知道如何将tomcat的对象转换为wicket session对象+1,但不应该访问
totalActiveSessions
nchronized或使用了
AtomicInteger
?我不认为servlet规范说明了对会话侦听器的并发访问。您可能是对的@TomaszNurkiewicz,在实际应用程序中,我可能会同步它:)我保存了HttpSessions列表,但我不知道如何将这些会话转换为wickets会话(WebSession),因为我找不到获取此Wicket会话列表的方法