2012-06-24 62 views
3

如何獲取Xpage中活動會話的數量。我試圖使用託管的bean,但它只是返回一個奇怪的字符串。這裏是簡單的代碼:Xpages - 獲取活動會話數(Lotus Domino 8.5.2)

 
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

請幫幫我。非常感謝!

+0

可能你稱它錯了,看來你省略了括號。 –

+0

在Java中返回「int | 0」有什麼意義?它不是一個JavaScript。 A | false = A。 –

+0

我已將它刪除:D – Jairo

回答

6

會話監聽器必須注入應用程序才能按需要工作。否則,sessionCreated/sessionDestroyed方法永遠不會被調用,並且0始終返回。但XPages和「傳統」JSF之間存在一些差異。看看這裏:

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

或者察看了XSP Starterkit內。

編輯:

要添加會話監聽器,請執行以下操作:

  1. 切換到Java透視圖
  2. 在 「代碼/ Java」 的文件夾,創建一個文件夾「META- INF「
  3. 在這個META-INF文件夾中,創建一個文件夾」services「
  4. 在」services「文件夾中創建一個名爲」com.ibm.xsp.core.events.Sessi onListener」
  5. 在這個文件中,添加類的全名:package.SessionCounterListener

現在,會話監聽器應該被激活。

+0

XSP StarterKit沒有文檔。 :( – Jairo

+0

在上面我的回覆中增加了一個簡短的描述 –

+0

感謝您的編輯我想你使用的是8.5.3,因爲Java文件夾的存在不幸的是,我正在使用8.5.2:我有代碼,但問題是services文件夾 – Jairo