Ich versuche, meine Anwendung Timeout auf Tomcat 7 App einzurichten server.First Ich teste mit meinem Timeout als eine Minute lang in web.xml alsTimeout in der web.xml gesetzt funktioniert nicht in Java
<session-config>
<session-timeout>1</session-timeout>
</session-config>
und ich verwende HttpSessionListener, um sicherzustellen, dass mein Timeout funktioniert. Ich habe meine sessionListener-Klasse in web.xml deklariert.
public class HttpSessionChecker implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent event) {
System.out.printf("Session ID %s created at %s%n", event.getSession().getId(), new Date());
}
public void sessionDestroyed(HttpSessionEvent event) {
System.out.printf("Session ID %s destroyed at %s%n", event.getSession().getId(), new Date());
}
}
und in web.xml
<listener>
<listener-class>com.test.util.HttpSessionChecker</listener-class>
</listener>
Aber wenn mein Server starten und meine Anwendung starten Ich sehe Sitzung auf der Login-Seite nur eingeleitet wird.
Session ID 934073ED5E9933158995EE5EB680D3F7 created at Wed Nov 07 09:39:13 PST 2012
und wenn ich für mehr als eine Minute oder einige Male mehr als fünf Minuten Ursache Tomcat Idle bleiben nicht Timeout Feuer sofort in meiner Anwendung, und klicken Sie auf etwas in meiner Anwendung Session ist nicht Expired.Still Ich bin in der Lage, eine andere Seite zu navigieren.Aber wenn ich bleibe auf der Anmeldeseite oder abgemeldet sehe ich die Sitzung zerstört ist. Aber wenn einmal die Anmeldung abgeschlossen ist und wenn ich mich in der Anwendungssitzung befindet, tritt kein Timeout auf. Ich sehe
Session ID 934073ED5E9933158995EE5EB680D3F7 destroyed at Wed Nov 07 09:42:13 PST 2012
Was mache ich falsch? Und selbst nachdem ich <session-timeout>
in web.xml
erwähnt brauche ich Code session.invalidate
irgendwo in Code? Wie kann ich in einer in JSF zerstörten Sitzung zu login.xhtml
umleiten?
Wo ist die Logik, die Ihre Sitzung erstellt? Wo greifen Sie zuerst auf eine '@ SessionScoped'-Bean zu? Suchen Sie zuerst nach aktiven Sitzungen, bevor Sie eine Anforderung erfüllen, oder erstellen Sie stillschweigend eine neue Sitzung? – kolossus
Überprüfen Sie [Sitzung Timeout Behandlung auf JSF AJAX-Anfrage] (http://StackOverflow.com/Q/11203195/1065197) –
@Kolossus ... Wenn ich meine Anwendung starten, wird Login-Seite Login Bean, die Session Scoped ist. Und zum Zeitpunkt der Anmeldung überprüfen wir nirgendwo! (Session.isNew()). Ich denke, es ist eine neue Sitzung erstellen. – SRy