Zählen Sie die aktiven Sitzungen in der J2EE-App, die in JBoss 3.2.1 bereitgestellt wurde

Ich verwalte eine J2EE-Anwendung, die auf JBoss 3.2.1 bereitgestellt wird. Als Teil meines Services für meinen Kunden möchte ich Berichte bereitstellen, in denen die Anzahl der aktiven Sitzungen angegeben ist. Ich habe eine einfache Klasse und eine JSP-Seite implementiert, die die Anzahl der aktiven Sitzungen abruft, aber ich habe einen Fehler entdeckt: Durch das Überprüfen der Anzahl der Sitzungen selbst wird eine neue Sitzung erstellt und daher die Anzahl der Sitzungen erhöht.

Hier ist der Code für meine Klasse:

package com.hudsongates;

import javax.servlet.http.*;

public class SessionCount implements HttpSessionListener
{
  private static int numberOfSessions = 0;

  public void sessionCreated (HttpSessionEvent evt)
  {
    numberOfSessions++;
  }

  public void sessionDestroyed (HttpSessionEvent evt)
  {
    numberOfSessions--;
  }

  // here is our own method to return the number of current sessions
  public static int getNumberOfSessions()
  {
    return numberOfSessions;
  }

}

Die JSP-Seite sieht folgendermaßen aus:

<html>
<head>
<title>Active Sessions</title>
</head>
<body>
activeSessions=<%=com.hudsongates.SessionCount.getNumberOfSessions()%>
</body>
</html>

Ich möchte den Ansatz leicht ändern, sodass ich anstelle einer JSP-Seite eine einfache Batch-Datei verwende. Ich habe zum Beispiel eine Batch-Datei mit dem Namen getSessions.bat erstellt:

REM Setup environment
call environment.bat

set LOG_PATH=%INSTALL_PATH%\log
set =%INSTALL_PATH%\lib\app.jar
set CLASSPATH=%INSTALL_PATH%\lib\app.jar

%JDK_HOME%\bin\java -cp "%CLASSPATH%" com.hudsongates.SessionCount.getNumberOfSessions() > %LOG_PATH%\test.log

Das Problem ist, dass ich beim Ausführen der Batchdatei die folgende Ausnahme erhalte:

Exception in thread "main" java.lang.NoClassDefFoundError: com/hudsongates/SessionCount/getNumberOfSessions()

Muss ich meiner Klasse eine "main" -Methode hinzufügen? Wenn ja, was würde es tun? Gibt es eine bessere Möglichkeit, mein Endziel zu erreichen, die Anzahl der aktiven Sitzungen genau zu zählen? Beachten Sie, dass die Sitzungsanzahl im folgenden Format in eine Protokolldatei geschrieben werden muss:

activeSessions=24

Danke im Voraus,

Paul

Antworten auf die Frage(2)

Ihre Antwort auf die Frage