2010-11-18 3 views
0

Odd one this. Ich habe eine Servlet-Anwendung unter Tomcat mit Axis2 ausgeführt. Die Anwendung stellt auch einen Webservice (über Axis2) zur Verfügung.Chrome verliert Sitzungen, wenn auf meinen Axis2-Webservice zugegriffen wird

Nun, Tomcat behandelt Session Management kein Problem, wie üblich, jedoch, wenn der Web-Service aufgerufen wird, nach dem Zufallsprinzip scheinen alle Sitzungen für ungültig erklärt werden. Plus, afaik, das passiert nur in Chrome! Wenn der Chrome-Client das nächste Mal eine Anfrage sendet, wird ihm von Tomcat eine neue Sitzung übergeben.

Dies geschieht nach jedem Aufruf des Webdienstes, hat jedoch keine Auswirkungen auf Sitzungen in Firefox oder Safari.

Irgendwelche Ideen? Das ist extrem verwirrend für mich.

Vielen Dank im Voraus

Antwort

0

Fixed it. Sehr seltsames Ergebnis, aber der Axis2/Web Service Teil war ein kompletter Red Hering. Das Problem hierbei war, dass ich eine andere Instanz von Chrome verwendete, um den Webdienst aufzurufen (mit einer anderen Webanwendung).

Diese zweite App lief unter der gleichen URL, aber auf einem anderen Port (8080 statt der Standard 80). Es scheint, dass Browser (nicht nur Chrome) Sitzungen basierend auf A. der Domäne (wie zB www.stackoverflow.com oder localhost) und B. dem Pfad (dh dem Namen der Web-App in Tomcat) verwalten.

Es unterscheidet NICHT zwischen Domains, die auf verschiedenen Ports laufen, daher hat sich Chrome völlig verwirrt, als ich zwei Fenster geöffnet hatte, eines zeigte auf localhost/webapp und das andere auf localhost: 8080/webapp. Was Chrome anbelangt, war es die gleiche Seite und daher überschrieb jeder die Sitzungs-ID des anderen.

Was für ein Chaos!

Verwandte Themen