2009-06-03 5 views
3

Ich implementiere jsr 186 Portlets, mit einigen Servlets, um etwas Ajax zu implementieren. Das Problem ist, wenn ich nur einige Zeit AJAX-Anrufe mache, verliere ich die Sitzung. Seltsamerweise verhindert das Aufrechterhalten der Servlet-Sitzung nicht, dass die Portlet-Sitzung das Zeitlimit überschreitet.Portlets - Aufrechterhaltung der Session von der Serverseite

Gibt es eine Möglichkeit, die Sitzung in meinen Servlets auf der Serverseite am Leben zu erhalten?

FWIW Ich verwende Feder und Feder mvc/portlet.

Danke, Miguel Ping

Antwort

0

Ich setzte es einen JavaScript-Timer, die Polling-URL ein Portlet gehalten. Die Portlet-URL wurde zuvor generiert, sodass sie in JavaScript zugänglich war.

1

Ich hatte das gleiche Problem. (Mit OpenPortal Portlet Container)

Wie ich weiß, gibt es zwei verschiedene Sitzungen, 1- Portlet-Sitzung, 2- Container-Sitzung.

Ich erstellte ein einfaches Portlet und stellte eine Anfrage an das Portlet mit AJAX regelmäßig aus dem Container. Die Sitzungszeit ist jedoch abgelaufen. Mein Code Fraktion ist hier:

<% 
    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> 

ich mein Problem Seite durch Anforderung Behälter gelöst habe (wihout einen Kanal für einen Portlet definiert wird).

Danke für die Bearbeitung.