Портлеты - поддержание сеанса на стороне сервера - PullRequest
3 голосов
/ 03 июня 2009

Я реализую портлеты jsr 186, с некоторыми сервлетами для реализации ajax. Проблема в том, что если я только некоторое время выполняю AJAX-вызовы, я теряю сеанс. Как ни странно, поддержание активности сеанса сервлета не предотвращает тайм-аут сеанса портлета.

Есть ли способ сохранить сеанс изнутри моих сервлетов на стороне сервера?

FWIW Я использую Spring и Spring MVC / портлет.

Спасибо, Мигель Пинг

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

У меня была такая же проблема. (Использование OpenPortal Portlet Container)

Как я знаю, есть два разных сеанса: 1 - сеанс портлета, 2 - сеанс контейнера.

Я создал простой портлет и периодически отправлял запрос на портлет с помощью ajax из контейнера. Однако время сеанса истекло. Моя часть кода здесь:

<%
    int per=15000; //ms
    String sessionExtenderPath = "http://portal.abc.com.tr:8080/SessionExtend/SessionExtend";
    //This is a portlet which includes servlet that returns a simple string.
%>

<script>
    periyod=100;

    function invokeRequest(){
     $.get("< %=sessionExtenderPath% >", function(data) {
      alert(1);
     });
    }
    window.setInterval("invokeRequest()",periyod);
</script>

Я решил свою проблему, запросив страницу контейнера (без определения канала для портлета).

Спасибо за редактирование.

0 голосов
/ 25 сентября 2009

Я реализовал это, используя таймер JavaScript, который продолжал опрашивать URL-адрес портлета. URL-адрес портлета был сгенерирован ранее, поэтому он был доступен в javascript.

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