Написание собственного магазина сессий для Weblogic

StackOverflow https://stackoverflow.com/questions/1630932

  •  06-07-2019
  •  | 
  •  

Вопрос

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

  

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top