Chrome теряет сеансы при доступе к моему веб-сервису Axis2

Странное это. У меня есть приложение сервлета, работающее под Tomcat с Axis2. Приложение также предоставляет веб-службу (через Axis2).

Итак, Tomcat без проблем справляется с управлением сеансами, как обычно, однако при случайном вызове веб-службы все сеансы кажутся недействительными. Кроме того, на самом деле это происходит только в Chrome! В следующий раз, когда клиент Chrome делает запрос, Tomcat передает ему новый сеанс.

Это происходит после каждого вызова веб-службы, но не влияет на сеансы в Firefox или Safari.

Любые идеи? Это крайне озадачивает меня.

заранее спасибо


person Dave    schedule 18.11.2010    source источник


Ответы (1)


Починил это. Очень странный результат, но часть Axis2/веб-сервиса была полным отвлекающим маневром. Проблема заключалась в том, что я использовал другой экземпляр Chrome для вызова веб-службы (используя другое веб-приложение).

Это второе приложение работало с тем же URL-адресом, но с другим портом (8080 вместо 80 по умолчанию). Казалось бы, браузеры (не только Chrome) управляют сессиями на основе А. домена (например, www.stackoverflow.com или localhost в моем случае) и Б. пути (т. е. имени веб-приложения в Tomcat).

Он НЕ делает никакого различия между доменами, работающими на разных портах, поэтому Chrome запутался, когда у меня было открыто два окна, одно указывало на localhost/webapp, а другое указывало на localhost:8080/webapp. Что касается Chrome, это был один и тот же сайт, и поэтому каждый из них перезаписывал идентификатор сеанса другого.

Какой беспорядок!

person Dave    schedule 18.11.2010