在不同的portlet应用程序中共享主题和portlet之间的httpsession

时间:2013-09-13 02:38:23

标签: java servlets liferay portlet httpsession

我正在尝试在不同的portlet应用程序中共享主题和portlet之间的httpsession。但它总是在portlet中返回null值。

主题是发布到servlet以存储httpsession:

HttpSession session = request.getSession();
session.setAttribute("testsession", "testsession");

我试图通过以下方式在portlet中检索会话:

1)

HttpSession session = httpRequest.getSession(false);
System.out.println("session "+session.getAttribute("testsession")); 

2)

System.out.println("portletsession :"+renderRequest.getPortletSession().getAttribute("testsession", PortletSession.APPLICATION_SCOPE));

3)

HttpSession httpSession = PortalUtil.getHttpServletRequest(renderRequest).getSession(false);
         System.out.println("httpSession 212 in java : "+httpSession.getAttribute("testsession"));

以上所有都返回null。有没有人有经验  在此之前实现此行为?

谢谢,

西里尔

2 个答案:

答案 0 :(得分:1)

它在private-session-attributes标记中不起作用。但是我的解决方案是通过portlet实例id将portlet嵌入到主题中。

此处了解更多信息:

http://www.liferay.com/community/wiki/-/wiki/Main/Embedding+a+portlet+in+the+theme

由于

答案 1 :(得分:0)

尝试在liferay-portlet.xml

中设置此属性
<private-session-attributes>false</private-session-attributes>

HTH