Xpages - 获取活动会话数(Lotus Domino 8.5.2)

时间:2012-06-24 13:25:56

标签: java session jsf listener xpages

如何获取Xpage中的活动会话数。我正在尝试使用托管bean,但它只返回一个奇怪的字符串。这是简单的代码:

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class SessionCounterListener implements HttpSessionListener {

  private static int totalActiveSessions;

  public static int getTotalActiveSessions(){
    return totalActiveSessions;
  }

  public void sessionCreated(HttpSessionEvent arg0) {
    totalActiveSessions++;
    System.out.println("sessionCreated - add one session into counter");
  }

  public void sessionDestroyed(HttpSessionEvent arg0) {
    totalActiveSessions--;
    System.out.println("sessionDestroyed - deduct one session from counter");
  } 
}

我是从here得到的。但是当我调用SessionCounterListener.getTotalActiveSessions()时,它只返回0(无论是否有人登录)。

如果您有时间,可以查看我的测试数据库here

请帮帮我。非常感谢!

1 个答案:

答案 0 :(得分:6)

必须在应用程序中注入会话侦听器才能按需运行。否则,将永远不会调用sessionCreated / sessionDestroyed方法,并且始终返回0。但是XPages和“传统”JSF之间存在一些差异。看看这里:

http://www.openntf.org/projects/pmt.nsf/66d9103768cc2fed85256c59006b5433/00a38cdf382f4893862578b80082dd15!OpenDocument

或者查看XSP Starterkit

修改

要添加会话侦听器,请执行以下操作:

  1. 切换到java透视
  2. 在“Code / Java”文件夹中,创建一个文件夹“META-INF”
  3. 在此META-INF文件夹中,创建一个文件夹“services”
  4. 在“services”文件夹中创建名为“com.ibm.xsp.core.events.SessionListener”的文件
  5. 在此文件中,添加您的类的全名:package.SessionCounterListener
  6. 现在,应该激活会话侦听器。