ICE Faces Portlet in OpenPortal Portlet Container and Web Space
By User13334247-Oracle on Jun 29, 2009
There has been discussion in ICEFaces forum and at http://portlet-container.dev.java.net mailing list regarding deploying ICEFaces Portlet in OpenPortal Portlet Container. The issue is that after deploying the ICEFaces portlet(that uses AJAX push capability), when you access the Portlet, you get an ICEfaces popup window in the browser with the message "user session expired" and a "Reload" button. Thanks to the ICEFaces team, they found the issue and mentioned that it was related to the cookies for JSESSIONID and paths. The problem is that the portlet container is running in its own context(/portletdriver) separate from the ICE Faces portlet's context for Ajax requests. And the solution suggested was to deploy the portletdriver at root context.
I found another solution which works if you don't want to deploy portletdriver to the root context. This also works for the case where you deploy Web Space server to a non-root context.
This involves adding the following to the sun-web.xml
<session-config> <cookie-properties> <property name="cookiePath" value="/" /> </cookie-properties> </session-config>
After adding this entry you need to redeploy the portletdriver.war/webspace.war.
If you are using OpenPortal Portlet Container on Tomcat, you need to add emptySessionPath to the server.xml.
<Connector port="8080" .... emptySessionPath="true" />