Написание собственного магазина сессий для Weblogic - PullRequest
1 голос
/ 27 октября 2009

Я хочу сохранить данные сеанса JSP в пользовательском хранилище (указанном мной) на сервере WebLogic. Есть ли какой-либо интерфейс или базовый класс, который я могу реализовать, или фильтр, который я могу написать, который я могу подключить через конфигурацию и который позволяет мне хранить данные сеанса в моем хранилище? Я сделал начальный поиск, но не смог найти точку входа. Любой, кто знает, как это можно сделать.

На самом деле я хотел использовать хранилище с хорошей производительностью и поддержкой распределения данных между несколькими серверами (без репликации). Таких магазинов (кешей) много. Поэтому, написав свой провайдер хранилища сеансов, я могу сохранить данные сеансов в своем многораздельном (или разделенном с репликацией) хранилище и обмениваться ими на нескольких веб-серверах.

Ответы [ 2 ]

0 голосов
/ 30 октября 2009

В WebLogic нет общедоступного API для управления данными сеанса.

Если вы готовы выполнять большую работу, вы можете изменить веб-приложения так, чтобы они перехватывали все сеансовые вызовы и хранили данные там, где вы хотите. Доступны стандартные API: ServletContextListener, ServletContextAttributeListener, ServletRequestListener, ServletRequestAttributeListener, HttpSessionListener и HttpSessionAttributeListener. Вы можете зарегистрировать своих слушателей в web.xml.

Если вы амбициозны, вы можете написать код, чтобы автоматически использовать веб-приложения. Oracle Coherence Веб-продукт использует этот подход. См. Раздел «Как Coherence Web Installer использует приложение Java EE» на этой странице . Это дает описание высокого уровня необходимых шагов.

0 голосов
/ 28 октября 2009

Я не думаю, что Weblogic позволяет вам это делать. Насколько мне известно, не существует общедоступного интерфейса для реализации, и Weblogic не предлагает никаких хуков или способов подключить вашу реализацию в постоянную конфигурацию сеанса .

Если честно, мне действительно интересно, почему вы бы реализовали свое собственное постоянное хранилище (это больше ответственность поставщика сервера приложений). Я не понимаю, чего вы не можете достичь, используя одну из 5 существующих реализаций . Возможно, вы могли бы использовать file store и установить пользовательский persistent-store-dir . Но на самом деле, без более подробной информации о вашей цели, я не уверен, что смогу указать верное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...