Contar sessões ativas no aplicativo J2EE implementado no JBoss 3.2.1

Eu gerencio um aplicativo J2EE que é implementado no JBoss 3.2.1. Como parte do meu serviço ao meu cliente, desejo fornecer relatórios que mostrem o número de sessões ativas. Implementei uma classe simples e uma página JSP que recuperam o número de sessões ativas, mas descobri uma falha: o processo de verificação do número de sessões em si cria uma nova sessão e, portanto, aumenta o número de sessões.

Aqui está o código da minha aula:

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;
  }

}

A página JSP se parece com isso:

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

Eu gostaria de alterar a abordagem um pouco para que, em vez de usar uma página JSP, eu use um arquivo em lotes simples. Por exemplo, criei um arquivo de lote chamado getSessions.bat:

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

O problema é que, quando executo o arquivo em lote, recebo a seguinte exceção:

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

Preciso adicionar um método "main" à minha classe? Se sim, o que isso faria? Existe uma maneira melhor de atingir meu objetivo final de contar com precisão o número de sessões ativas? Tenha em mente que a contagem de sessões precisa ser gravada em um arquivo de log no seguinte formato:

activeSessions=24

Desde já, obrigado,

Paulo

questionAnswers(2)

yourAnswerToTheQuestion