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

Jai*_*iro 3 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");
  } 
}

我从这里得到了这个.但是当我打电话时SessionCounterListener.getTotalActiveSessions(),它只返回0(无论是否有人登录).

如果您有时间,可以在这里查看我的测试数据库.

请帮我.非常感谢!

Sve*_*ach 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

现在,应该激活会话侦听器.