2010-11-18 1 views
0

이상한 점. Axis2가있는 Tomcat에서 실행되는 서블릿 애플리케이션이 있습니다. 또한 Axis2를 통해 웹 서비스를 노출합니다.Axis2 웹 서비스에 액세스 할 때 Chrome이 세션을 잃음.

이제 Tomcat은 세션 관리를 아무런 문제없이 처리하지만 웹 서비스가 무작위로 호출 될 때 모든 세션이 무효화 된 것처럼 보입니다. 또한 afaik, 이것은 Chrome에서만 발생합니다! 다음 번에 Chrome 클라이언트가 요청하면 Tomcat에 의해 새로운 세션이 전달됩니다.

이것은 웹 서비스가 호출 될 때마다 발생하지만 Firefox 또는 Safari의 세션에는 영향을주지 않습니다.

아이디어가 있으십니까? 이것은 나를 위해 극도로 당혹 스럽다.

미리 감사드립니다.

답변

0

고쳐졌습니다. 매우 이상한 결과이지만 Axis2/웹 서비스 부분은 완전한 청어이었다. 여기서 문제는 다른 웹 앱을 사용하여 웹 서비스를 호출하기 위해 다른 Chrome 인스턴스를 사용하고 있다는 것입니다.

이 두 번째 앱은 동일한 URL이지만 다른 포트 (기본 80 대신 8080)에서 실행되었습니다. 브라우저 (예 : 크롬뿐만 아니라)는 A. 도메인 (예 : www.stackoverflow.com 또는 localhost)과 B. 경로 (Tomcat의 웹 앱 이름)를 기반으로 세션을 관리하는 것처럼 보입니다.

도메인이 서로 다른 포트를 구분하지 않기 때문에 두 개의 창이 열려있을 때 Chrome이 혼란스러워졌습니다. 하나는 localhost/webapp를 가리키고 다른 하나는 localhost : 8080/webapp를 가리키고 있습니다. Chrome에 관해서는 동일한 사이트 였기 때문에 각 사용자가 다른 사용자의 세션 ID를 덮어 썼습니다.

어떤 혼란!