2009-06-03 77 views
3

我正在實現jsr 186 portlet,並且有一些servlet用於實現一些ajax。問題是如果我只進行一段時間的AJAX調用,則會失去會話。奇怪的是,保持活動的servlet會話不會阻止portlet會話超時。Portlets-從服務器端保持會話活動

有沒有一種方法可以讓我的servlet在服務器端保持活動狀態?

FWIW我使用的是spring和spring mvc/portlet。

感謝, 米格爾·平

回答

0

我實現它使用輪詢保持一個portlet URL一個JavaScript計時器。 portlet網址是在生成之前生成的,因此可以通過javascript訪問。

1

我有同樣的問題。 (使用OpenPortal Portlet容器)

據我所知有兩個不同的會話,1-門戶會話,2-容器會話。

我創建了一個簡單的portlet,並定期向容器中的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> 

我已經解決了通過請求容器頁面我的問題(wihout定義爲portlet)頻道。

感謝您的編輯。