clojure, кольцо, tomcat и JSESSIONID

Я начал использовать Clojure для создания веб-приложения (используя Ring и Compojure), и с ним все работает нормально.

Однако, когда я использую uberwar для создания файла войны и развертывания его на Tomcat, мой сеанс не виден для Tomcat.

Сам механизм сеанса определенно работает (например, он сохраняет состояние корзины для покупок), но нет JSESSIONID, а приложение менеджера Tomcat, Java Melody, Psi Probe говорят, что у меня нет сеансов.

Я уверен, что есть что-то очевидное, чего мне не хватает при создании JSESSIONID, но я ничего не видел об этом ни в одном из учебников, которые я нашел.

Может ли кто-нибудь указать мне пример того, как приложение Clojure, развернутое на сервере Tomcat, создает JSESSIONID?

Спасибо за любую помощь


person user2545472    schedule 03.07.2013    source источник


Ответы (1)


Ring использует свое собственное хранилище сеансов< /а>.

Однако, если вы используете контейнер сервлетов, Ring будет заполнить карту запроса различными объектами сервлета. В этом случае ключ :servlet-request относится к объекту HttpServletRequest.

Стоит отметить, что Ring является абстракцией над HTTP и не обязательно опирается на спецификацию Servlet. Итак, пока вы используете контейнер сервлетов внизу, вы должны иметь возможность использовать свои сеансы сервлетов.

person Jeremy    schedule 03.07.2013
comment
Идеальный ответ спасибо. Теперь у меня есть сеанс контейнера сервлета, работающий после вашего комментария. - person user2545472; 04.07.2013