ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
691
691
EMPFEHLEN
-
03.02.12 11:59 #1
Hallo,
habe eine einfache Frage zu der ich leider nichts finden konnte:
Wie kann man alle aktiven Sessions auslesen mit JSP oder JSF? Brauche das für eine Online-Statistik!
Danke
Gruß Masterpurzel
-
03.02.12 23:40 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
dazu gibt es AFAIK kein Standard API... man könnte sich natürlich selbst etwas auf Basis eines HttpSessionListener bauen, aber ich denke dies ist in diesem Fall nicht zweckdienlich...
Welchen Servlet-Container verwendest du denn? in der Regel gibt es dort App-Server spezifische Möglichkeiten die Http-Sessions aufzulisten und auf Session-Attribute zuzugreifen.
Bei Tomcat kann man die Session Informationen relativ einfach über die internen Management JMX MBeans auslesen.
Schau mal hier:
(für das Beispiel habe ich beim start einer Session ein Attribut mit einem generierten "UserName" hinzugefügt)
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
package de.tutorials.web.training; import java.io.IOException; public class GetSessionInfoServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter out = resp.getWriter(); try { MBeanServer pmbs = ManagementFactory.getPlatformMBeanServer(); ObjectName on = new ObjectName("Catalina:type=Manager,context=" + req.getContextPath() + ",host=localhost"); out.println("ActiveSessions: "+ pmbs.getAttribute(on, "activeSessions")); String[] sessionIds = pmbs.invoke(on, "listSessionIds", new Object[0], new String[0]).toString().split(" "); out.println(Arrays.toString(sessionIds)); for(String sessionId : sessionIds){ out.println("Session: " + sessionId +" UserName: " + pmbs.invoke(on, "getSessionAttribute", new Object[]{sessionId, "UserName"}, new String[]{String.class.getName(),String.class.getName()})); } } catch (Exception e) { e.printStackTrace(); } } }
Ausgabe:
Code :1 2 3 4
ActiveSessions: 2 [E4D4EFE02B846271CBB67DB21016AFE7, 0E1072BC82581645210DD1D61520A452] Session: E4D4EFE02B846271CBB67DB21016AFE7 UserName: User_1328308664892 Session: 0E1072BC82581645210DD1D61520A452 UserName: User_1328308652756
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
04.02.12 14:03 #3
Danke Thomas für das Beispiel! Ich werde das mal testen, da ich Tomcat benutze!
-
05.02.12 19:02 #4
Ich habe da so ein paar Probleme:
das wichtigste zuerst: lokal funktioniert es, auf meinem entferntem Server nicht mehr, es wird immer nur "0" angezeigt!
Was kann ich dagegen tun?
PS: Tomcat zeigt mir auch immer nur "0" an
Geändert von Masterpurzel (05.02.12 um 19:07 Uhr)
-
06.02.12 11:50 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
eventuell musst du hier einen anderen Host als Attribut im ObjectName verwenden:
Code java:1 2 3
... ObjectName on = new ObjectName("Catalina:type=Manager,context=" + req.getContextPath() + ",host=localhost"); ...
Welche Tomcat Version verwendest du denn? Getestet habe ich das mit Tomcat Version 7.0.23
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
06.02.12 12:44 #6
Ich habe auch die 7er Version, das Attribut hatte ich schon geändert - auf den Wert der in server.xml unter config steht. Ging auch nicht. Was ich noch anmerken muss:
lokal lade ich es per Webinterface von Tomcat hoch (.war). Online lade ich es per sftp hoch. Kanns daran liegen?
€dit:
meine Verzeichnisse sehen so aus:
.war
-tomcat
+-webapps
-+-pcpowerplay
--+-...alle daten sind hier drin!
sftp
-tomcat
+-webapps
-+-pcpowerplay
--+-ROOT
---+-...alle daten sind hier drin!
Geändert von Masterpurzel (06.02.12 um 13:01 Uhr)
Ähnliche Themen
-
B2B sessions auslesen
Von D2587 im Forum PHPAntworten: 2Letzter Beitrag: 22.09.09, 11:46 -
ICEFACES, JSF, Zugriff auf alle Sessions?
Von WolfBauer im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 16.01.08, 03:23 -
Who is online- Auf alle Sessions zugreifen
Von Carrear im Forum PHPAntworten: 10Letzter Beitrag: 14.06.06, 09:41 -
Alle Sessions ermitteln ?!
Von Grunge im Forum PHPAntworten: 15Letzter Beitrag: 12.02.06, 13:50 -
Sessions auslesen
Von Caralynn im Forum PHPAntworten: 4Letzter Beitrag: 06.05.04, 16:30





Zitieren


Login





